Usar userform para introducir información
Tengo creada una base de datos y para añadir registro he utilizado un userform de maner que se rellenan tres campos y al dar a un botón dentro del userform estos datos se quedan validados. El problema que tengo es que siempre se registran en la segunda fila y los datos van avanzando había abajo a medida que introduzco más información. Lo que quiero es que en lugar de empezar siempre a rellenar en esa fila la macro lo revise las columnas y lo haga donde las celdas están vacías, es decir, si meto un registro que lo haga justo después del que esta situado al final en la parte de abajo. He planteado un ciclio do while pero el problema es que no sale, ¿me podéis echar una mano? Gracias.
Este la parte de código del userform
Private Sub CommandButton1_Click()
Rem inserta un renglon
Selection.EntireRow.Insert
Rem Empty Limpia Los Textbox
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
Rem Textbox1SetFocus Envia el cursor al Textbox1 para volver a capturar los datos
TextBox1.SetFocus
End Sub
------------------------------------------------------------------------
Private Sub TextBox1_Change()
Range("B2").Select
If i = 1 Then
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
End If
ActiveCell.FormulaR1C1 = TextBox1
End Sub
---------------------------------------------------------------------------
Private Sub TextBox2_Change()
Range("C2").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.FormulaR1C1 = TextBox2
End Sub
---------------------------------------------------------------------------
Private Sub TextBox3_Change()
Range("A2").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.FormulaR1C1 = TextBox3
End Sub
Este la parte de código del userform
Private Sub CommandButton1_Click()
Rem inserta un renglon
Selection.EntireRow.Insert
Rem Empty Limpia Los Textbox
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
Rem Textbox1SetFocus Envia el cursor al Textbox1 para volver a capturar los datos
TextBox1.SetFocus
End Sub
------------------------------------------------------------------------
Private Sub TextBox1_Change()
Range("B2").Select
If i = 1 Then
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
End If
ActiveCell.FormulaR1C1 = TextBox1
End Sub
---------------------------------------------------------------------------
Private Sub TextBox2_Change()
Range("C2").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.FormulaR1C1 = TextBox2
End Sub
---------------------------------------------------------------------------
Private Sub TextBox3_Change()
Range("A2").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.FormulaR1C1 = TextBox3
End Sub
4 respuestas
Respuesta de Elsa Matilde
1
Respuesta de Juan Carlos González Chavarría
1
Respuesta
1
Respuesta de Orlando Collarte
1