Macro para recorrer una lista en Excel automáticamente

Deseo una macro que me seleccione los ítem de la lista desplegable que tengo creada automáticamente, es decir que la macro me seleccione el ítem #1 de la lista, después el #2 y así sucesivamente, para después activar otra macro a cada uno de esos item. Los datos originales de la lista están en una hoja llamada Datos en la celda J3 hasta la J24. Y la lista desplegable esta en la hoja Seguimiento en la celda D1.

2 respuestas

Respuesta
1

.08.03.17

Buenos días, Estefanía

El truco pasa por seleccionar los datos del rango que alimenta la lista.

En tu caso la rutina sería como esta:

Sub SeleDlista()
LaHoja = "Datos"
ElRango = "J3:J24"
For LineaAc = 1 To Sheets(LaHoja).Range("Datos").Rows.Count
    Seleccion = Sheets(LaHoja).Range("Datos").Cells(LineaAc).Value
    '
    'tu rutina ejecutada con lo que cargó en la variable Seleccion
    '
Next LineaAc
End Sub

Como verás en el bucle For...Next, cada pasada toma un elemento del rango original y lo carga en una variable que llamé Seleccion.

Luego, con ese dato, harás que opere la otra subrutina que tuvieres.

.

Muchas Gracias por tu pronta Respuesta,

La macro me funciono perfecro, pero quisiera saber si con ella puedo seleccionar un ítem individualmente es decir con lo que me mandaste que me seleccione uno a la vez y cuando me seleccione uno me active otra macro.

Me explicare mejor, tengo diferentes botones asignados a diferentes macro, cada botón tiene el nombre de un item de la lista desplegable, quiero que el botón me seleccione el nombre correspondiente de la lista y que se active la macro de ese botón.

Gracias y que pena la molestia

.

Hola, Estefanía

Si, eventualmente, te hubiese entendido bien, parece que las macros de cada botón son distintas entre sí.

Y lo que buscas es un botón que "presione" cada uno de esos botones y se ejecuten sus macros respectivas.

Si así fuera, esta rutina -que luego adaptarás con los nombres de cada macro asociada- las ejecuta una tras otra:

Sub HaceTodo()
Call Macro1 'reeemplaza por el nombre de tu primera rutina
Call Macro2 'reeemplaza por el nombre de tu segunda rutina
Call Macro3 'reeemplaza por el nombre de tu tercera rutina
Call Macro4 'reeemplaza por el nombre de tu cuarta rutina
Call MacroN 'reeemplaza por el nombre de tu n rutina
'...
End Sub

Espero que sea lo que buscas. Si no, puedes escribirme de nuevo.

Saludos

Fer

.

Respuesta
1

Te anexo la macro

Sub Recorrer_Lista()
'Por.Dante Amor
    For i = 3 To 24
        Sheets("Seguimiento").Range("D1") = Sheets("Datos").Cells(i, "J")
        Call OtraMacro
    Next
    MsgBox "Fin"
End Sub

Cambia OtraMacro por el nombre de la macro que quieras ejecutar.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas