Rellenar hoja1 a partir de datos de hoja2 mediante Combobox

Que me trae de cabeza.

Tengo en la hoja1 de mi libro un formulario con unos datos de clientes como se ve en la foto

Bien, en la hoja2, tengo almacenados todos los datos, que se corresponden con las celdas de este formulario, es decir, tengo a todas las personas ordenadas por ID con sus datos correspondientes, como se ve en la siguiente foto

Bien, esta lista no solo contendría 1 sino que seria en principio un número indeterminado y que pudiera ir en aumento constantemente.

La duda que tengo y lo que no se hacer es lo siguiente:

Utilizando este UserForm, el cual esta alimentado y me aparecera en el Combo todas las ID que haya en la hoja2, cuando le de a consultar con una ID introducida (1 en la foto), cogiendo los datos de la hoja 2 me rellene los datos que hay en esta hoja1.

Bien espero haberme explicado bien y que alguien pueda echarme una mano.

1 respuesta

Respuesta
2

Pon el siguiente código en botón Consultar

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    If ComboBox1.ListIndex = -1 Then
        MsgBox "Selecciona un ID"
        Exit Sub
    End If
    fila = ComboBox1.ListIndex + 2
    h1.Range("B2") = h2.Cells(fila, "A")
    h1.Range("B3") = h2.Cells(fila, "B")
    h1.Range("B4") = h2.Cells(fila, "C")
    h1.Range("B5") = h2.Cells(fila, "D")
    h1.Range("B6") = h2.Cells(fila, "E")
End Sub

.

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

.

Avísame cualquier duda

.

Buenos días y muchas gracias por tu rápida respuesta.

Tengo un problema, 

En el libro original (no el que te mande que era un ejemplo) el archivo de los datos comienza en la celda A3 y es una fecha. He cambiado el código que me has puesto con los datos actualizados de mi libro pero al darle a consultar me sale mensaje "Seleccione una ID" cuando la fecha la he introducido bien.

He tenido que hacer algo mal pero no doy con la tecla,

Esta es la hoja donde voy almacenando los datos. Lo que quiero copiar al consultar empieza en A3 que es la fecha y todos los datos que hay para esa fecha.

Cada día se copia una fila más, ya que cada día relleno otra vez con otra fecha diferente.

No se si me explico bien y si entiendes mi idea bien.

Gracias

El dato que captures en el combo debe existir como dato del combo. Empieza por seleccionar un dato del combo para que veas el comportamiento.

Cambia el + 2 por + 3

Hola, te explico un poco el comportamiento después de haber realizado varias pruebas.

Lo primero es comentarte que el como lo he alimentado con lo que sale en la siguiente fotografía, de ahí extraigo los datos que figuran en el combo. Seleccione unas celdas de la fecha y las nombre, poniendo ese datos en las propiedades del combo (RowSource) para que cada vez que amplíe mi archivo con datos de una fecha nueva me aparezca también en el combo.

En la imagen se ve las celdas señaladas y en la parte superior el nombre que le asigne para relacionarlo al combo (disculpa pero no recuerdo el nombre que se le da a esta operación).

Dicho esto, con el código tal y como tu me lo diste, poniendo en el combo cualquier fecha, me rellena las celdas que le he asignado empezando por "Diario" (este dato lo veras arriba del todo, es una celda para saber que los datos son los diarios, pero me reconoce esa celda y ninguna mas).

Si pongo en el código "+3" me reconoce la fila donde pone "Fecha" y todo lo que hay después, es decir, toda la fila 2.

Si pongo "+4" me reconoce toda la fila 3. Y así sucesivamente. Pero me reconoce estas filas, sin tener en cuenta lo que yo pongo en el combo. Si yo con "+4" meto en el combo "8-11-2017" y le doy a consultar, me rellena con los datos extraídos de la fila 3 que corresponden a otra fecha, es decir, creo que no me busca la coincidencia entre el combo y mis datos archivados.

Discúlpame por mi manera de explicarlo, espero que lo entiendas bien.

Un saludo

Tienes que seleccionar un dato del combo.

Envíame tu archivo para revisarlo

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Ignacio Contreras

La macro está bien.

En tu form tienes este código:

'Private Sub ComboBox1_Change()
'
''ComboBox1 = Format(ComboBox1, "dd-mm-yy")
'
'End Sub

Cada que seleccionas un dato del combo, cambias el contenido del combo, lo que hace es regresar el listindex del combo a -1, es por eso que no encuentra la fila.

Quita ese código y asunto resuelto.


Ahora, el problema que tienes es el formato de fecha en el combo. Eso es debido a la forma en que estás cargando el combo, estás utilizando rowsource. Utiliza lo siguiente para cargar el combo:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h1 = Sheets("CONSULTA")
    Set h2 = Sheets("ARCHIVO")
    fila = ComboBox1.ListIndex + 3
    h1.Range("K4") = h2.Cells(fila, "A")
    h1.Range("J9") = h2.Cells(fila, "B")
    h1.Range("J13") = h2.Cells(fila, "C")
    h1.Range("J14") = h2.Cells(fila, "D")
    h1.Range("J15") = h2.Cells(fila, "E")
    h1.Range("J16") = h2.Cells(fila, "F")
End Sub
'
Private Sub UserForm_Activate()
    Set h2 = Sheets("ARCHIVO")
    For i = 3 To h2.Range("A" & Rows.Count).End(xlUp).Row
        ComboBox1.AddItem h2.Cells(i, "A")
    Next
End Sub

Sal u dos

Hola, muchas gracias por todo.

Ahora cuando introduzco en combo 4-11-2017 me copia los datos de "Archivo" de la siguiente fila, 8-11-2017 y así sucesivamente,

¿Algo debí hacer mal? :(

Rectifico, PERFECTO¡¡¡ no me había dado cuenta que tu código ponía +3 y que yo al hacer las pruebas lo había dejado en +4.

Todo Perfecto¡¡¡¡ Muchísimas Gracias 

Como te comenté, debes seleccionar el dato del combo.

Lo que tu estás haciendo es capturar el dato dentro del combo.

Lo que pasa es que en el combo se agregaron fechas y tu estás capturando un texto, la comparación no es igual. Al no encontrar ningún elemento dentro del combo, el resultado es listindex = -1.

Para explicar mejor lo que está pasando, en lugar de fechas en tu "archivo", escribe textos, por ejemplo:

Abc

Def

Fac

Etc

Ahora ejecuta el formulario

Escribe en el combo abc, o def o fac o etc, presiona el botón, los datos se despliegan, pero si escribes solamente ab o de o fa o et, y presionas el botón, no encuentra nada.

Lo mismo sucede con las fechas, aparentemente estás escribiendo una fecha, pero para excel no estás poniendo una fecha completa, tal y como se cargó en el combo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas