Macro en excel para seleccionar el siguiente dato de una lista desplegable

Necesito el cdigo de visual basic, para programar una macro en excel, en donde al momento de ejecutarse seleccione el siguiente dato de la lista desplegable

1 Respuesta

Respuesta
3

La lista desplegable tiene sus datos en algún rango de celdas. Entonces lo que haría la macro es seleccionar dato por dato de ese rango de celdas y ponerlo en la celda que tiene la validación de datos.

Ejemplo, en la siguiente imagen, la celda B4 contiene una lista desplegable, los datos están en el rango E2 a E9

Esta es la macro para leer el rango E2 a E9 y poner cada dato en la celda B4

Sub Nombres()
'Por.Dante Amor
    For Each dato In Sheets("Hoja1").Range("E2:E9")
        Sheets("Hoja1").[B4] = dato.Value
    Next
End Sub

Tienes que cambiar en la macro, los nombre de "Hoja1" por el nombre de tus hojas, B4 por la celda que contiene la lista desplegable y "E2:E9" por el rango donde tienes tus datos.

Saludos. Dante Amor

Si es lo que necesitas.

GRACIAS. 

La macro corre pero va pasando todos los datos del primero hasta el final.... necesito que pase de uno en uno cada vez que se ejecute la macro hay alguna posibilidad ???

Nuevamente gracias. cordial saludo

Me puedes dar todos los datos:

1. ¿Hay datos duplicados en tu lista?

2. ¿En qué celda está tu lista desplegable?

3. ¿En qué hoja está tu lista desplegable?

4. ¿En cuál hoja tienes tu rango de datos?

5. ¿En cuál rango está tu rango de datos?

gracias ..

1. No, no hay ningún dato duplicado.

2. La lista desplegable se encuentra en C6 de la hoja llamada boletin6

3. La hoja de la lista desplegable se llama boletin6

4. La hoja que tiene el rango de datos se llama códigos

5. El rango de los datos es c3:c145 de la hoja códigos

Te regreso la macro actualizada

Sub SiguienteDato()
'Por.Dante Amor
    Set h1 = Sheets("boletin6")
    Set h2 = Sheets("codigos")
    If h1.[C6] <> "" Then
        u = h2.Range("C" & Rows.Count).End(xlUp).Row
        Set b = h2.Range("C3:C" & u).Find(h1.[C6], lookat:=xlWhole)
        If Not b Is Nothing Then h1.[C6] = b.Offset(1, 0)
    End If
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas