Como crear macro que aumente en 1 cada vez que se ingresa los datos

Hola es la primera ves que pregunto. Desde ya muchas gracias por existir esta pagina y a los que contestan las preguntas, que muchas veces me a ayudado. Quería crear una macro en un botón que ej: que en hoja1 celda activa a1 me marque el "1" y en la misma fila ingresare otros datos con textbox, y cuando vuelva a insertar nuevos datos que serán en la siguiente fila de abajo que en a2 me ingrese "2" y asi sucesivamente. Algo asi:

a1 b1 c1 d1

1 Ruben Silva 27 años

2 Fulano Altra 20 años

3 fulato suso 18 años

1 Respuesta

Respuesta
1

¿El numero va a coincidir siempre con el numero de fila?

Gracias por atender mi pregunta.

No necesariante, osea! cuando ingrese nuevos datos en esa fila va apareciendo un numero según las veces que haga click en el botón de ingresos.

como si fuera el numero de registro de algo. ej: en access seria el id del producto.

quiero usarlo mas adelante para buscar por ese numero, y si elimininaría esa fila las otras quedarían con los mismos números no cambiarían. Gracias

Me seria útil ver el código del botón que usas para agregar los datos del form a la hoja

hola, creo que encontré algo que funciona.

me gustaría ver otra opción de como hacer.

Aquí te dejo el código para cer si hay que modificar algo:

Private Sub CommandButton1_Click()
Rem ingresa el numero de registro
Sheets("hoja1").Select
Range("a1").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(-1, 0).Select
valor = ActiveCell.Value + 1
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = valor
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = TextBox1
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = TextBox2
End Sub

recién me di cuenta que funciona solo si en a1 ya tiene el numero 1.

como hago para que si a1 esta vacía que ingrese en esa fila el primer registro, osea el 1 y en la celda de la derecha el textobox1 y a la derecha del textbox1 el textbox2 ? ? ?

no pude hacer funcionar bien! ayuda...

Prueba con esto:

Private Sub CommandButton1_Click()
Rem ingresa el numero de registro
Sheets("hoja1").Select
Range("a1").Select

if not range("a1") = "" then
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(-1, 0).Select
valor = ActiveCell.Value + 1

else

range("a1").value = 1

end if
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = valor
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = TextBox1
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = TextBox2
End Sub

muchas gracias usando tu ayuda logramos encontrar la solución.

empezando en a1 me daba error y cambie para a2 y anduvo bien. gracias quedo asi:

Rem ingresa el numero de registro
Sheets("hoja1").Select
Range("a2").Select
If Range("a2") = "" Then
ActiveCell.FormulaR1C1 = "1"
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = TextBox1
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = TextBox2
Else
GoTo yaya
yaya:
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(-1, 0).Select
valor = ActiveCell.Value + 1
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = valor
seguir:
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = TextBox1
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = TextBox2
End If

Bien, aunque no es recomendable usar subrutinas goto, ya solo se utilizan para el control de errores (on error goto), y dicha función ya se ha eliminado en las nuevas versiones con try ... catch.

Tampoco es muy recomendable utilizar en exceso la instrucción select, pues hace mas lento tu programa al tener que cambiar el foco y la instrucción da error si se hace un select cuando la hoja a la que se refiere no es la hoja activa

Puntúa y cierra la pregunta si no tienes mas dudas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas