Introducir datos a celdas mediante formularios

Estaba viendo tu página y tengo la siguiente duda, tengo archivo excel con columnas ya definidas con encabezados, quiero introducir datos mediante un formularios, hice un macro introduce los datos en cada celda pero le doy grabar y da inserta un fila hacia abajo, lo quiero es introducir datos.
Por ejemplo los primeros datos se introducen en la celda B6 y quisiera que se introduzcan los siguientes al B7 y así sucesivamente, este es el código:
Private Sub CommandButton1_Click()
Rem inserta un renglon
Selection.EntireRow.Insert
Rem Empty Limpia Los Textbox
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox5 = Empty
TextBox6 = Empty
TextBox7 = Empty
TextBox8 = Empty
TextBox9 = Empty
TextBox10 = Empty
TextBox11 = Empty
TextBox12 = Empty
Rem Textbox1SetFocus Envia el cursor al Textbox1 para volver a capturar los datos
TextBox1.SetFocus
End Sub
Te agradecería mucho si puedes ayudarme,
(xxxxxx)

1 Respuesta

Respuesta
1
Elimina la sentencia que inserta la fila, en tu código la primera y la segunda
Quedaría así
Private Sub CommandButton1_Click()
Rem Empty Limpia Los Textbox
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox5 = Empty
TextBox6 = Empty
TextBox7 = Empty
TextBox8 = Empty
TextBox9 = Empty
TextBox10 = Empty
TextBox11 = Empty
TextBox12 = Empty
Rem Textbox1SetFocus Envia el cursor al Textbox1 para volver a capturar los datos
TextBox1.SetFocus
End Sub
Muchas gracias por la pronta respuesta, pero te explico mejor, he creado una planilla que contiene varias columnas y a cada una dentro del formulario le asigne el siguiente código fuente en cada TEXTBOX:
Private Sub TextBox1_Change()
Range("b6").Select
ActiveCell.FormulaR1C1 = TextBox1
End Sub
Private Sub TextBox10_Change()
Range("k6").Select
ActiveCell.FormulaR1C1 = TextBox10
End Sub
Private Sub TextBox11_Change()
Range("l6").Select
ActiveCell.FormulaR1C1 = TextBox11
End Sub
Private Sub TextBox12_Change()
Range("m6").Select
ActiveCell.FormulaR1C1 = TextBox12
End Sub
Private Sub TextBox2_Change()
Range("c6").Select
ActiveCell.FormulaR1C1 = TextBox2
End Sub
Private Sub TextBox3_Change()
Range("d6").Select
ActiveCell.FormulaR1C1 = TextBox3
End Sub
Private Sub TextBox4_Change()
Range("e6").Select
ActiveCell.FormulaR1C1 = TextBox4
End Sub
Private Sub TextBox5_Change()
Range("f6").Select
ActiveCell.FormulaR1C1 = TextBox5
End Sub
Private Sub TextBox6_Change()
Range("g6").Select
ActiveCell.FormulaR1C1 = TextBox6
End Sub
Private Sub TextBox7_Change()
Range("h6").Select
ActiveCell.FormulaR1C1 = TextBox7
End Sub
Private Sub TextBox8_Change()
Range("i6").Select
ActiveCell.FormulaR1C1 = TextBox8
End Sub
Private Sub TextBox9_Change()
Range("j6").Select
ActiveCell.FormulaR1C1 = TextBox9
End Sub
Con esto ingreso datos a cada celda, el problema es el siguiente:
La primera fila es desde B6 hasta L6 y cuando ingreso el codigo fuente osea:
Private Sub CommandButton1_Click()
Rem inserta un renglon
Selection.EntireRow.Insert
Rem Empty Limpia Los Textbox
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox5 = Empty
TextBox6 = Empty
TextBox7 = Empty
TextBox8 = Empty
TextBox9 = Empty
TextBox10 = Empty
TextBox11 = Empty
TextBox12 = Empty
Rem Textbox1SetFocus Envia el cursor al Textbox1 para volver a capturar los datos
TextBox1.SetFocus
End Sub
Quisiera que salte directamente a la fila 7; es decir que comience a llenarse los datos desde B7 hasta L7, sin embargo lo que hace es insertar un fila y los datos ingresados se bajan.
También quisiera que si puede protegerse la hoja para que solo se pueda ingresar datos mediante formulario y también si se puede en una hoja independiente osea HOJA1 colocar un macro para que salga el formulario que he creado en la hoja2 y no se vea la planilla, solo se ingrese los datos mediante el formulario ya creado.
Esa seria mi duda, es mucha y es porque recién estoy incursionando y en las macros, muchas gracias y espero tu pronta respuesta, si deseas te mando por mail la planilla para que la analices.
Un abrazo,
(xxxxxx)
Si analizas el código que me estas colocando, eso precisamente es lo que hace al hacer click en el botón. Interesa una fila, limpia los datos y se coloca en el textbox1. Lo que quiere decir que no debes usar ese código.
Para ocultar hoja y cargar el formulario
Sub auto_open()
tuhoja.Visible=False
nombre de tu formulario.Show
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas