lunes, 11 de septiembre de 2023

Buscar siguiente registro en userform con vba

 

Buscar siguiente en userform

Hoja 1 de datos

Public lngfilaactual, lngfila As Long
Public strletra As String
Public rng1 As Range
Private Sub cmdbuscar_Click()
Dim ws As Worksheet
Dim strcadena As String
strcadena = Me.txtcadena.Text
Set ws = Worksheets("Hoja1")
lngultimafila = ws.Range("A1").End(xlDown).Offset(1, 0).Row + -1
If (lngfila <= 0) Then
    r1 = "B1"
    r2 = "B" & lngultimafila
Else
    r1 = strletra & lngfilaactual
    r2 = "B" & lngultimafila
End If
Set rng1 = ws.Range(r1 & ":" & r2).Find(What:=strcadena, _
LookAt:=xlPart, LookIn:=xlValues)
If rng1 Is Nothing Then
    MsgBox "Registro no encontrado", vbOKOnly + vbInformation, "Buscar"
    Exit Sub
Else
    'Mostramos datos
    Me.txtclave.Value = ws.Range("A" & rng1.Row)
    Me.txtnombre.Value = ws.Range("B" & rng1.Row)
    Me.txtdireccion.Value = ws.Range("C" & rng1.Row)
    Me.txttelefono.Value = ws.Range("D" & rng1.Row)
    'Obtenemos la celda actual
    r = rng1.Address '$B$3
    'Obtenemos fila actual
    lngfila = rng1.Row
End If
'Obtenemos la letra de la columna actual
strletra = Mid(rng1.Address, 2, 1)
'Obtenemos número de fila actual
lngfilaactual = Mid(rng1.Address, 4)
lblregistro.Caption = "Registro: " & lngfilaactual - 1 & " de " & lngultimafila
End Sub
Private Sub txtcadena_Change()
lngfila = 0
End Sub

No hay comentarios.:

Publicar un comentario