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
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