Como programar botón "anterior" en excel vba

Estoy haciendo un formulario con botones de desplazamiento de registros, (es decir, primero, siguiente, anterior y ultimo), pero tengo problemas con el botón anterior, ya que en la celda A1 tengo los encabezados (código, nombre, nit, factura, etc.), y no quiero que me los muestre en el formulario, he intentado ponerle algunas condiciones, pero hasta el momento no me funcionan, aquí pongo el código de lo que he programado.
Sheets("facturas").Select
Selection.Offset(-1, 0).Select
txtcod.Value = ActiveCell.Offset(0, -3)
txtnombre.Value = ActiveCell.Offset(0, -2)
txtnit.Value = ActiveCell.Offset(0, -1)
El botón funciona correctamente, pero llega inclusive hasta la celda A1, mostrándome los encabezados, lo que yo necesito es que llegue hasta la celda A2 y me saque un mensaje de error y no muestre más datos.
Muchas gracias.

OswaldoburiMiembro Nuevo
 Mensajes: 4Registrado: 20 Mar 2018 16:56

2 Respuestas

Respuesta
2

En este video de mi canal explico cómo establecer la fila para cada botón y en mi blog dejo un libro de ejemplo para que lo descargues.

Si luego aún te quedan dudas deja una imagen de tu hoja para ajustar la macro.

Sdos.

Elsa

Hola Elsa, muchas gracias por tu colaboración, me sirvió mucho el ejemplo.

Cuando valores esta respuesta para darla por cerrada, podés dejarme la nueva consulta en el tablón para continuar con el tema.

Sdos!

Respuesta
1

Hol.a

Agrega esto:

If ActiveCell.Address = "$A$1" Then
Range("A2").Select
End If

Antes de "txtcod.Value = ActiveCell.Offset(0, -3)"

Salu2

Abraham Valencia

Hola Abraham.

Te informo que el formulario se queda estático, es decir, si avanzo hasta el registro 3 y me devuelvo con el botón, no me muestra la información anterior, se queda en ese mismo registro.

Muchas gracias

No me queda claro si lo que planteas es un nuevo problema o siempre fue le problema, quizá sea más fácil entenderte si colocas el archivo en algún "Drive" y compartes por aquí el enlace.

Abraham Valencia

Claro que si. 

en el archivo que acabo de montar, puedes ver que aparece un formulario con los  botones de anterior, siguiente, primero y ultimo, y todos funcionan, ensaya yendo hasta el ultimo registro, y empieza a darle clic al botón anterior, cuando el llega hasta la celda A2, la idea es que no siga devolviéndose, porque ese seria el primer registro, mi idea es que cuando llegue allí, saque un mensaje indicando que es el primer registro, este es el link...

 https://www.dropbox.com/home?preview=botones+desplazamiento.xlsm

te agradezco la ayuda que me puedas brindar,

muchas gracias.

Ah, se me olvidaba, este es el usuario y contraseña para que descargues el archivo...

usuario: [email protected]

contraseña: examenfinal123 

El archivo se llama botones desplazamiento,.,.

Reemplaza por esto las líneas correspondientes:

Private Sub btnatras_Click()
Selection.Offset(-1, 0).Select
If Selection.Row = 1 Then
    ActiveCell.Offset(1, 0).Select
    MsgBox "Ya estás en la primera línea"
End If
txtcod.Value = ActiveCell.Offset(0, -3)
txtnombre.Value = ActiveCell.Offset(0, -2)
txtnit.Value = ActiveCell.Offset(0, -1)
txtfact.Value = ActiveCell.Offset(0, 0)
End Sub

Salu2

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas