UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se puede subir archivos al foro, favor de hacerlo en servidor externo (Dropbox, Drive...) y dejan link. "Sin archivo no hay respuestas"

Favor de leer "Todos los temas" Click aquí.

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

SantiBaires


Buenos días!

Tengo una duda con una macro para aplicarle a una lista desplegable, lo que necesito es que al cambiar el dato en la celda de la lista me ejecute un macro grabado previamente.

El codigo que ejecuto en Visual Basic es el siguiente:

En la hoja donde necesito ejecutar el macro:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$17" Then 
If Range("D17") = "Logística" Then 
Call Macro_Log 
If Range("D17") = "Administración" Then 
Call Macro_Adm
End If
End If
End Sub

Datos:
- La celda donde se encuentra la lista desplegable es la D17.
- Uno de los datos de la lista es "Logística".
- El macro que necesito ejecutar con el dato anterior (grabado previamente) es la que se llama Log.
- Además tendría que ingresar todos los valores de la lista (por ejemplo "Administración"), cada uno con su respectivo macro.


Finalmente, al intentar ejecutar la macro cambiando el dato de la lista desplegable, me da el error: Error de compilación - No se ha definido Sub o function.


Me podrán ayudar a encontrar el error?

Muchas gracias!

excelboy

avatar
Hola SantiBaires,

Estoy viendo en tu código tres ifs y veo que solo solo estas cerrando dos de ellos. Será ese descuido el que te esta dando el error?

Debería quedar algo así:

Código:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$17" Then 
  If Range("D17") = "Logística" Then 
    Call Macro_Log
  End If

  If Range("D17") = "Administración" Then 
    Call Macro_Adm
  End If
End If
End Sub

Otro consejo... Identa tu código para que sea legible!

Saludos!

http://mexcelmx.blogspot.mx/

SantiBaires


Muchas gracias por la respuesta.

Intenté ejecutar la macro con la corrección del código e igualmente me sigue dando el error Error de compilación - No se ha definido Sub o function.

Puntualmente luego la ventana de error me lleva a VBA con el título subrayado:

Private Sub Worksheet_Change(ByVal Target As Range)


If Target.Address = "$D$17" Then 
  If Range("D17") = "Logística" Then 
    Call Macro_Log
  End If

  If Range("D17") = "Administración" Then 
    Call Macro_Adm
  End If
End If
End Sub


Saludos!

excelboy

avatar
Hola SantiBaires,

Será que puedes subir una copia de tu archivo?

Saludos!

http://mexcelmx.blogspot.mx/

Igtelo

avatar
Lo doy por resuelto y cierro, que gente que no contesta

Gracias ExcelBoy.

Ignacio Téllez

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.