Macro excel, tengo un textbox

Tengo un textbox que esta ligado a una celda (A1), lo que quiero es que cuando le pique a un botón, en ese textbox aparezca el contenido de A2, y la próxima vez que le de click al botón aparezca el A3, y así sucesivamente, si alguien me pudiera ayudar mil gracias

1 respuesta

Respuesta
1
El código que tendrías que poner al botón sería de este estilo:
Private Sub CommandButton1_Click()
    Dim dirAct As String
    Dim nLinAct As Integer
    Dim nColAct As Integer
    Dim dirNew As String
    dirAct = Me.TextBox1.LinkedCell
    nLinAct = Range(dirAct).Row
    nColAct = Range(dirAct).Column
    dirNew = Cells(nLinAct + 1, nColAct).Address
    Me.TextBox1.LinkedCell = dirNew
End Sub
Funciona perfecto muchísimas gracias, pero ahora tengo otro problema muy diferente,
el asunto es el siguiente: Lo que quiero hacer es que supongamos que tengo una lista de nombres en la columna A, y tengo un textbox1 en el quiero que aparezca el contenido de la celda A1, pero tengo otras textbox ligadas a B1, C1, D1, E1, F1, G1 y H1. El usuario tendrá que llenar esas textbox con algunos datos numéricos.
El asunto es que quiero que con un macro o un botón, al darle click, en el textbox1 aparecerá el contenido de la celda A2, y que los otros textboxes ahora estén ligados con B2 C2 D2 E2 F2 G2 H2 y que el usuario llene de nueva cuenta con datos los espacios, y le de click al botón y ahora parezca A3 y las textboxes estén ligadas a B3 C3 D3.. etc...
Si pudieras ayudarme lo agradecería muchísimo.
En ese caso puedes hacerlo más fácilmente de esta manera:
Option Explicit
Private Sub CommandButton1_Click()
    Dim nLineaDatos As Long
    nLineaDatos = 0
    CambiarCeldaTextBox Me. TextBox1, nLineaDatos
cambiarCeldaTextBox Me. TextBox2, nLineaDatos
cambiarCeldaTextBox Me. TextBox3, nLineaDatos
cambiarCeldaTextBox Me. TextBox4, nLineaDatos
End Sub
Private Sub cambiarCeldaTextBox(ByRef tb As Object, ByRef nLinea As Long)
    Dim dirAct As String
    Dim nColTB As Integer
    Dim dirNew As String
    dirAct = tb.LinkedCell
    If nLinea <= 0 Then nLinea = Range(dirAct).Row + 1 ' Si no nos dicen la línea la miramos en el objeto
    nColTB = Range(dirAct).Column
    dirNew = Cells(nLinea, nColTB).Address
    tb.LinkedCell = dirNew
End Sub
Así puedes actualizar varios textbox al mismo tiempo y te asegura que todos apuntarán siempre a la misma línea.
Excelente! Funciona muy bien muchísimas gracias, como ultima pregunta (jajajaja) y sin intención de abusar, y si solo tengo un textbox que esta ligado con A1, y en lugar de los otros textboxes tengo checkboxes ligados con B1 C1 D1, etc... cuando están ON aparece un numero 1 en su respectiva celda (B1 C1 D1 por ejemplo) si están OFF aparece un cero. La pregunta, como le hago para que al click del botón o macro, ahora estén ligadas a A2 B2 C2, etc
Gracias, ya se que estoy abusando, pero no lo hago con intención, más bien lo hago porque ya estoy algo desesperado, y haz sido una luz en mi camino... Te lo agradezco profundamente
En principio no debería haber problemas para que en lugar de un textbox pongas un checkbox u otro objeto en la llamada a 'cambiarCeldaTextBox'.
Si quieres cambia el nombre del procedimiento y en todas las partes donde ponga 'cambiarCeldaTextBox' puedes poner 'cambiarCeldaObjeto'. Sería más exacto pero es sólo un titulo, es el nombre del procedimiento y funcionaría igual si se llamase 'buscoChicaRicaConFerrariRojo'.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas