Desplazar filas con algún comando en VB
Muchas vueltas me di antes de entrar acá así que en cierto modo es mi último recurso.
Bueno, mi consulta es la siguiente, estoy creando un formulario que es para llevar un registro diario del consumo de aceros en equipos mineros.
Me enviaron a hacer un "programa" con interfaz de fácil uso para quienes lo ocupen. No tenía idea ni de macros ni de VB, mi única experiencia en programar fue con JAVA años atrás, pero esta no es mi área.
Sin embargo de a poco he ido aprendiendo harto hasta que llegué a mi piedra de tope. Tengo toda la interfaz lista y estoy programando los botones a utilizar. Tengo muchos textbox, 247 para ser exacto, por lo que la forma más fácil que se me ocurrió fue que cada textbox se asignara a una celda contigua hacia la derecha, es decir, textbox1 celda "A2" ... Textbox247 celda "IM2"
Las columnas indican los diferentes datos a ingresar, ej: columna "A" Fecha; columna "B" turno; columna "C" operario, etc..
Lo primero: veo que al ingresar los datos en el textbox se anotan automáticamente en la celda asignada, pero no sé si será necesario un botón "guardar" o quedan grabados al momento de escribir en el textbox.
Y lo principal, necesito un botón "añadir" tal que cuando se presione, me guarde la información del formulario, me deje el formulario en blanco y que quede lista una nueva fila para ingresar datos, con la otra guardada. Puede ser guardada en cualquier orden, por lo que ingresar los datos en una nueva fila, o desplazar las filas hacia abajo, me da igual. He visto en otros foros o acá mismo que lo que hacen es desplazarse hacia abajo en las filas pero por celdas. A mi no me sirve pues claramente tengo 247 columnas lo cual se haría muy tedioso.
Lo otro sólo si se puede, no sé si exista algún algoritmo para asignar las celdas a cada textbox, porque asignar 200 y tantas veces también es algo latero, pero no se me ocurre nada para realizar el algoritmo con las letras, pues cada textbox es en distinta columna pero misma fila:
Private Sub TextBox001_Change()
Range("A2").Select
ActiveCell.FormulaR1C1 = TextBox001
End Sub
Private Sub TextBox002_Change()
Range("B2").Select
ActiveCell.FormulaR1C1 = TextBox002
End Sub
.
.
.
Private Sub TextBox247_Change()
Range("IM2").Select
ActiveCell.FormulaR1C1 = TextBox247
End Sub
Bueno, mi consulta es la siguiente, estoy creando un formulario que es para llevar un registro diario del consumo de aceros en equipos mineros.
Me enviaron a hacer un "programa" con interfaz de fácil uso para quienes lo ocupen. No tenía idea ni de macros ni de VB, mi única experiencia en programar fue con JAVA años atrás, pero esta no es mi área.
Sin embargo de a poco he ido aprendiendo harto hasta que llegué a mi piedra de tope. Tengo toda la interfaz lista y estoy programando los botones a utilizar. Tengo muchos textbox, 247 para ser exacto, por lo que la forma más fácil que se me ocurrió fue que cada textbox se asignara a una celda contigua hacia la derecha, es decir, textbox1 celda "A2" ... Textbox247 celda "IM2"
Las columnas indican los diferentes datos a ingresar, ej: columna "A" Fecha; columna "B" turno; columna "C" operario, etc..
Lo primero: veo que al ingresar los datos en el textbox se anotan automáticamente en la celda asignada, pero no sé si será necesario un botón "guardar" o quedan grabados al momento de escribir en el textbox.
Y lo principal, necesito un botón "añadir" tal que cuando se presione, me guarde la información del formulario, me deje el formulario en blanco y que quede lista una nueva fila para ingresar datos, con la otra guardada. Puede ser guardada en cualquier orden, por lo que ingresar los datos en una nueva fila, o desplazar las filas hacia abajo, me da igual. He visto en otros foros o acá mismo que lo que hacen es desplazarse hacia abajo en las filas pero por celdas. A mi no me sirve pues claramente tengo 247 columnas lo cual se haría muy tedioso.
Lo otro sólo si se puede, no sé si exista algún algoritmo para asignar las celdas a cada textbox, porque asignar 200 y tantas veces también es algo latero, pero no se me ocurre nada para realizar el algoritmo con las letras, pues cada textbox es en distinta columna pero misma fila:
Private Sub TextBox001_Change()
Range("A2").Select
ActiveCell.FormulaR1C1 = TextBox001
End Sub
Private Sub TextBox002_Change()
Range("B2").Select
ActiveCell.FormulaR1C1 = TextBox002
End Sub
.
.
.
Private Sub TextBox247_Change()
Range("IM2").Select
ActiveCell.FormulaR1C1 = TextBox247
End Sub
1 Respuesta
Respuesta de Juan Carlos González Chavarría
2