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 SubAhora 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 SubHe 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.
2 Respuestas
Respuesta de Adriel Ortiz Mangia
1
Respuesta de Programar Excel
1