Aunque el desarrollo es bastante sencillo, me pareció interesante compartirlo...
Para el ejemplo necesitamos una base de datos simple de cuatro campos (Nombre, Apellidos, Edad y Sexo):
Igualmente necesitamos componer nuestro formulario con los siguientes controles:
4 cuadros de texto (TextBox):
txtNombre
txtApellido
txtEdad
txtSexo
4 botones de comando (CommandBox):
cmdInicio
cmdAnterior
cmdSiguiente
cmdFin
y opcionalmente unas etiquetas para identificar los campos en el UserForm.
Este podría ser un diseño:
Y ahora lo importante.. en la ventana de código del UserForm incluimos los siguiente procedimientos:
'variables a emplear entre los diferentes procedimientos más abajo
Dim fila As Long
Dim NumItems As Long
Private Sub UserForm_Initialize()
Dim filaIni As Long
'damos valores de partida
fila = 2
'rellenamos el formulario
RecuperaDatos (fila)
'y determinamos el número total de registros
NumItems = WorksheetFunction.CountA(Range("A:A")) - 1
End Sub
'Gestionamos los botones de Siguiente y Anterior
Private Sub cmdSiguiente_Click()
'controlamos el botón de Siguiente
'limitándolo por el último registro
If fila <= NumItems Then
fila = fila + 1
RecuperaDatos (fila)
Else
MsgBox "Último registro"
End If
End Sub
Private Sub cmdAnterior_Click()
'controlamos el botón de Anterior
'limitándolo por el primer registro
If fila > 2 Then
fila = fila - 1
RecuperaDatos (fila)
Else
MsgBox "Primera entrada!!"
End If
End Sub
Private Sub cmdFin_Click()
fila = NumItems + 1
RecuperaDatos (fila)
End Sub
Private Sub cmdInicio_Click()
fila = 2
RecuperaDatos (2)
End Sub
'Procedimiento para recuperar datos de la hoja hacia el UserForm
Private Sub RecuperaDatos(nRow As Long)
Me.TxtNombre.Value = Cells(nRow, 1)
Me.TxtApellido.Value = Cells(nRow, 2)
Me.txtEdad.Value = Cells(nRow, 3)
Me.txtSexo.Value = Cells(nRow, 4)
End Sub
Listo... puedes comprobar rápidamente el correcto funcionamiento de los diferentes botones.
















