Devuelve datos de una lista

Tengo un UserForm sencillo formado por dos Frame, los cuales rellenan las celdas A1 y B1 de la Hoja1, según seleccionemos A ó B y 1-2-3

Por otro lado, en la Hoja 2, tengo un listado con todas las combinaciones de A-B con 1-2-3 y en la Columna C y D otros datos asociados

Lo que necesito, es que según los datos A1-B1 de la Hoja1, busque los mismos en Hoja2 y copie los asociados C-D en Hoja 1, C1-D1

Por ejemplo:

Para terminar, si se puede, me gustaría que la búsqueda la hiciera automáticamente, es decir, según cambio la variable en el UserForm, la búsqueda la hiciera al instante sin necesidad de pulsar ningún botón que ejecute la acción.

Pero bueno, si hay que hacer este paso tampoco habría mucho problema.

2 respuestas

Respuesta
1

Creo que se puede conseguir con un par de fórmulas, que lógicamente estarían siempre actualizadas (salvo que se estableciese cálculo manual).

En Hoja1!C1: =INDICE(Hoja2!C:C;COINCIDIR(A1&B1;Hoja2!A1:A6&Hoja2!B1:B6;0))

En Hoja1!D1: =INDICE(Hoja2!D:D;COINCIDIR(A1&B1;Hoja2!A1:A6&Hoja2!B1:B6;0))

Ambas fórmulas son matriciales, por lo que hay que introducirlas pulsando mayúsculas control entrada al mismo tiempo.

Saludos_

Respuesta
1

Si ya estás utilizando algún código para pasar los datos de los option a la hoja 1, utiliza el siguiente código en tu userform, para poner la letra y el número; y también para poner los resultados de buscar en la hoja2

Private Sub OptionButton1_Click()
    Call Devolver_Datos
End Sub
Private Sub OptionButton2_Click()
    Call Devolver_Datos
End Sub
Private Sub OptionButton3_Click()
    Call Devolver_Datos
End Sub
Private Sub OptionButton4_Click()
    Call Devolver_Datos
End Sub
Private Sub OptionButton5_Click()
    Call Devolver_Datos
End Sub
'
Sub Devolver_Datos()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    h1.Cells(1, "C") = ""
    h1.Cells(1, "D") = ""
    '
    If OptionButton1 Then letra = "A"
    If OptionButton2 Then letra = "B"
    If OptionButton3 Then num = 1
    If OptionButton4 Then num = 2
    If OptionButton5 Then num = 3
    h1.Cells(1, "A") = letra
    h1.Cells(1, "B") = num
    For i = 1 To h2.Range("A" & Rows.Count).End(xlUp).Row
        If h2.Cells(i, "A") = letra And h2.Cells(i, "B") = num Then
            h1.Cells(1, "C") = h2.Cells(i, "C")
            h1.Cells(1, "D") = h2.Cells(i, "D")
        End If
    Next
End Sub

Habría que ajustar los número de optionbutton, estoy poniendo como sigue:

OptionButton1  letra = "A"
 OptionButton2 letra = "B"
OptionButton3 num = 1
OptionButton4 num = 2
OptionButton5 num = 3


Avísame si tienes alguna duda


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas