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.