Numero consecutivo

Hola expertos buenos días ójala me pudieran ayudar, estoy tratando de hacer un programa con macros para el control de vaciones de los empleados pero quiero usar las hojas de calculo de excel como BD y me tope con el problema de que no se como crear por medio de una macro el numero consecutivo en el siguiente renglón y que cuando se inicien los registro me escriba el numero uno como inicial, por su atención muchas gracias.

1 Respuesta

Respuesta
1
De algún modo ya tendrás alguna variable que va indicando en qué fila vas a colocar los datos.
Entonces imaginando que esa variable se llama fila, e imaginando que el nro consecutivo se colocará en col A e imaginando que los datos empiezan en A2, estas serían las instrucciones:
If fila = 2 Then
    nrocont = 1
Else
    nrocont = Application.WorksheetFunction.Max(Range("A2:A" & fila - 1)) + 1
End If
Cells(fila, 1) = nrocont
PD) Como podrás apreciar no es tan fácil hacerles llegar una rutina o parte sin datos + precisos... no les cuesta nada dejar la rutina que ya tienen hecha para que podamos trabajar sobre datos más concretos.
Hola Elsa buenos días mira realmente no se mucho de macros por eso me cuesta trabajo espresarme con claridad pero te mando la rutina que tengo para dar de alta cada registro en una hoja de excel que nombre txt
Private Sub CommandButton4_Click()
Rem Nos situamos en d10
Range("d10").Select
Rem bajamos hasta encontrar la fila vacia
Do While Not IsEmpty(ActiveCell)
Rem bajamos una Fila
ActiveCell.Offset(1, 0).Select
Loop
Rem Grabamos los datos en la primera fila vacia
Rem Primero el nombre del empleado
ActiveCell = TextBox1
Rem Ahora la Fecha
ActiveCell.Offset(0, 1) = (TextBox2)
Rem Ahora la Alta o Baja del trabajador
ActiveCell.Offset(0, 2) = (TextBox3)
Rem Ahora la Antiguedad en Años
ActiveCell.Offset(0, 3) = (TextBox4)
Rem Ahora los Años cumplidos en la empresa
ActiveCell.Offset(0, 4) = (TextBox5)
Rem Limpiamos los textbox
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
Rem Ponemos el focus en el TextBox1
TextBox1.SetFocus
End Sub
Y lo que deseo es que en el rango c10 me inicie con el 1 si no tengo ningún registro y si ya tengo alguno baje un renglón y escriba el que sigue para que de esta forma le sea asignado el consecutivo al nuevo registro, espero que ahora si me de a entender por tus atenciones muchas gracias y realmente te agradescco la pronta respuesta ya antes he visto las soluciones que has dado y creo sin temor a equivocarme que si me puedes ayudadar mi más reiterado agradecimiento.
No hace falta que expliquen casi nada ..., lo mejor es que dejen la rutina que ya tienen...
Aquí va ajustada:
Private Sub CommandButton4_Click()
Rem Nos situamos en d10
Range("d10").Select
Rem bajamos hasta encontrar la fila vacia
Do While Not IsEmpty(ActiveCell)
Rem bajamos una Fila
ActiveCell.Offset(1, 0).Select
Loop
Rem Grabamos los datos en la primera fila vacia
'aquí evaluamos si todavía estamos en fila 10. Colocamos 1 o el máx
If Activecell.row = 10 Then
    ActiveCell.Offset(0,-1) = 1
Else
    nrocont = Application.WorksheetFunction.Max(Range("C10:C" & ActiveCell.Row-1)) + 1
    ActiveCell.Offset(0,-1) = nrocont
End If
Rem Primero el nombre del empleado
ActiveCell = TextBox1
Rem Ahora la Fecha
ActiveCell.Offset(0, 1) = (TextBox2)
Rem Ahora la Alta o Baja del trabajador
ActiveCell.Offset(0, 2) = (TextBox3)
Rem Ahora la Antiguedad en Años
ActiveCell.Offset(0, 3) = (TextBox4)
Rem Ahora los Años cumplidos en la empresa
ActiveCell.Offset(0, 4) = (TextBox5)
Rem Limpiamos los textbox
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
Rem Ponemos el focus en el TextBox1
TextBox1.SetFocus
End Sub
Pruébala y comentame si es lo que necesitas
Sdos
Elsa
PD) Para aprender macros de modo 'actual', no dejes de visitar mi sitio de manuales
No pues el sabe sabe muchas gracias me ha sido de gran utilidad nada más una pregunta no se si pueda poner esa macro de decisión en un sitio aparte para poder llamarla en las macros que tenga que incluir un consecutivo o debo de escrbirla dentro del cuerpo de la macro que la nesite, nuevamente muchas gracias no sabes cunto tiempo batalle y no pude dar con la solución y no lo hubiera hecho de no se por ti. Que bueno que aun hay pensonas con la que pude uno contar, Adiós.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas