Tengo un listbox que me trae información de 4 columnas, una de las columnas es para fechas. A la hora de seleccionar uno de los registros dentro de esa listbox, la idea es poder buscar en una columna específica, la fecha del registro que se seleccionó y que devuelva el número de fila donde se encuentra esa fecha. Por ahora lo que tengo esto pero me da un error en la línea que dice "myrow = busco.Row" y el error que me sale es "Variable de objeto o bloque With no establecido". El código es:
Dim fecharegistro As Date
Dim myrow As Integer
Dim ultfila As Long
Dim busco As Object
ultfila = Sheets("Datos").Cells(Rows.Count, 1).End(xlUp).Row
Call ValidarVacios
If controlesVacios1 > 0 Then
MsgBox "Hay " & controlesVacios1 & " casillas con información sin llenar. No se puede continuar.", vbExclamation
Else
If Lista.ListIndex = -1 Then
MsgBox ("Seleccione un registro")
Else
fecharegistro = Lista.List(Lista.ListIndex, 3)
Set busco = Sheets("Datos").Range("A2:A" & ultfila).Find(fecharegistro)
myrow = busco.Row
MsgBox (myrow)
End If
End If
Hola @estebanchao:
Es lógico que te salga este error. Te explico el porque
Cuando haces esto: Set busco = Sheets("Datos").Range("A2:A" & ultfila).Find(fecharegistro)
Se almacena el valor como tipo String, es decir tipo texto. Lo que pretendemos buscar es una fecha. Entonces para solucionar tu problema solamente debes cambiar esto dentro de tu linea
Set busco = Sheets("Datos").Range("A2:A" & ultfila).Find(CDate(fecharegistro))
Espero te sirva
Un Saludo
Fernando