Macros en una lista desplegable

Me gustaría saber si es posible yo crear una lista desplegable, que al seleccionar algunas de las opciones se me active una macro con la información que seleccioné. O si lo puedo hacer por validación de datos.

Respuesta
2

Quizás el de la imagen se aproxime a lo que necesitas... por lo menos es lo que interpreté de tu consulta.

- En Hoja1 una celda (C2) con validación de datos, donde muestro una lista de meses.

- Una macro que se ejecuta al seleccionar algún elemento del desplegable. Esa macro se coloca en el objeto HOJA1 para nuestro ejemplo.

- Esa macro llama a un subproceso (Call macroHojas, aunque podrías evitar la llamada colocando las instrucciones allí mismo, eso dependerá de lo que haga tu macro) . En este ejemplo solo se pasa a la hoja según el mes seleccionado.

Si esto resuelve tu consulta no olvides valorarla. Sino aclara un poco más lo que necesitas.

Hola Elsa, gracias por tu aporte, una pregunta ahí puedo ingresar varias macros es que tengo un listado Alianzas, Ecosistemas, Innovación etc. lo que quiero es que al seleccionar  alguna de esas opciones me salga la información correspondiente a ellas. muchas gracias

No es muy fácil responderte con precisión considerando que casi no dejas información de tus macros.

Analicemos: '...que al seleccionar algunas de las opciones se me active una macro con la información que seleccioné...'

En mi ejemplo, la información seleccionada es un mes... y la macro seleccioná la hoja que tenga ese mes. Hasta ahí responde a tu pregunta.

Ahora, si mencionas que tenés varias macros y un listado quiero interpretar que al seleccionar 'Alianzas' se ejecutará una macro ... y si seleccionás 'Ecosistemas' debe ejecutar otra macro... y así con todas.

Si esto es correcto, la lista desplegable en C2 mostrará esos valores: Alianza, Ecosistemas, etc

Y la macro en el objeto HOJA quedaría así:

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
'solo se controla la celda C2
If Target.Address <> "$C$2" Then Exit Sub
'si se borra la celda no se ejecuta
If Target.Value = "" Then Exit Sub
'según el valor seleccionado será la macro a ejecutar
If Target.Value = "Alianza" Then Call macroAlianza : Exit Sub
If Target.Value = "Ecosistemas" Then Call macroEco : Exit Sub
If Target.Value = "Innovación" Then Call macroInnova : Exit Sub
'las macros estarán en otros módulos y en cada instrucción Call debes
'colocar el nombre que tengan en esos módulos.
End Sub

Luego en otros módulos tendrás cada una de las macros.

Podés utilizar los IF como en este ejemplo o un bucle del tipo:

Select Case Target.value

       Case is = "Alianza"

              Call macroAlianza

       Case is = "Ecosistemas"

              Call macroEco

   'seguir con el resto de los nombres

End Select

Creo que esto último te llevará más líneas por lo que te sugiero el uso de los IF.

Si esto tampoco es tal como tenés tu aplicación, enviame copia de tu libro. Mis correos aparecen en sitio que dejo al pie.

uyy super lo voy a ensayar, mil gracias por todo. 

Bien, solo no olvides regresar luego a valorar esta respuesta.

Sdos!

Elsa no me quiere dar la macro 

Ese no es el evento que utilicé... no es SelectionChange sino Change... revisa nuevamente mi respuesta.

Sdos!

1 respuesta más de otro experto

Respuesta

Laura puedes añadir botones para tus macros en la cinta de acceso rápido o añadir una pestaña en la cinta de opciones con los botones de tus macros.

Si eso te sirve y no sabes como hacerlo dímelo y te explico como. Ahora no puedo hasta dentro de un par de horas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas