Macro para devolver datos desde una bd (diferente hoja) a una planilla según item seleccionado de un listbox (de la hoja)
Pregunta para Dante Amor
Hace un tiempo me pasaste el siguiente código que tenía el fin de devolver datos a una planilla cargandolos desde una base de datos que estaba presente en la misma hoja, todo ello según el item seleccionado de un listbox al pulsar un botón de cargar:
Private Sub CommandButton1_Click() '--- ' Por.Dante Amor '--- If ListBox1.ListIndex = -1 Then MsgBox "Selecciona un registro del list" Exit Sub End If ' nombre = ListBox1.List(ListBox1.ListIndex) Set b = Columns("AB").Find(nombre, lookat:=xlWhole) If Not b Is Nothing Then Range("L4") = Cells(b.Row, "AC") 'nombre Range("L5") = Cells(b.Row, "AD") 'código Range("L6") = Cells(b.Row, "AE") 'tipo End If MsgBox "Los datos se han pasado con éxito", vbInformation, "CARGAR" End Sub
Ahora tengo la necesidad de hacer algo muy parecido, para otra hoja, pero en este caso la base de datos está en una hoja diferente y no en la misma, he probado diferentes adaptaciones pero no lo consigo, actualmente tengo esto pero no me funciona:
Private Sub btnCargar_Click() 'Declaramos variables Dim Cargar As String Cargar = MsgBox("Deseas cargar la sesión seleccionada?", vbYesNo) If Cargar = vbYes Then If ListBox2.List(ListBox2.ListIndex, 0) = -1 Then MsgBox "Selecciona un registro del list" Exit Sub End If Dato = ListBox2.List(ListBox2.ListIndex, 0) Set b = Sheets("BDRutinas2").Range("B4:B1000").Find(Dato, lookat:=xlWhole) If Not b Is Nothing Then Range("M4") = Cells(b.Row, "A") 'Fecha Range("N2") = Cells(b.Row, "B") 'Nombre del programa Range("L3") = Cells(b.Row, "C") 'Nombre Range("L4") = Cells(b.Row, "D") 'Código Range("L5") = Cells(b.Row, "E") 'Tipo End If MsgBox "La sesión ha sido cargada con éxito", vbInformation, "CARGAR SESIÓN DE ENTRENAMIENTO" End If End Sub
He puesto 0 pk el valor que debe buscar en la base de datos es el valor de la primera columna del listbox y una vez encontrado en la bd, cargar sobre ese rango cada valor de la columna en la planilla de la hoja principal.
Respuesta de Programar Excel
1
1 respuesta más de otro experto
Respuesta de Adriel Ortiz Mangia
1