Hoja autonumerica

23/09/2006 - 18:03 por Alejandro Garcia | Informe spam
Hola, un compañero de trabajo tiene un libro en el cual cada columna
tiene datos de empleados, la primera columna es un codigo consecutivo
de la posicion ordenada en la cual queda el empleado por apellido, se
puede hacer este ordenamiento y el autonumero automaticamente, es decir
cada vez que inserte a un empleado en una fila nueva quede ordenada la
hoja por apellido?.

Gracias.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
23/09/2006 - 19:40 | Informe spam
hola, Alejandro !

... libro en el cual cada columna tiene datos
... la primera... es un codigo consecutivo de la posicion ordenada en la cual queda el empleado por apellido
... hacer este ordenamiento y el autonumero automaticamente
... cada vez que inserte a un empleado en una fila nueva quede ordenada la hoja por apellido?.



- podrias comentar en que 'momento' es necesaria la ordenacion automatica ? [es decir]:
confirmar si el apellido [y los nombres] se escriben en una sola celda ? o en celdas separadas ?
comentar si despues de hacer la ordenacion se continuara la captura de datos en las 'otras' columnas ?
o si prefieres que la ordenacion se realice despues de haberse capturado -todos- los datos del empleado 'nuevo' ?

saludos,
hector.
Respuesta Responder a este mensaje
#2 Alejandro Garcia
25/09/2006 - 17:04 | Informe spam
Gracias por contestar, mira:

- podrias comentar en que 'momento' es necesaria la ordenacion automatica ?
[es decir]:
confirmar si el apellido [y los nombres] se escriben en una sola celda ?
o en celdas separadas ?


Los apellidos y nombres van en celdas separadas.
comentar si despues de hacer la ordenacion se continuara la captura de
datos en las 'otras' columnas ?


La captura es lineal, osea, ingreso varios datos ademas del nombre y
apellido, tales como fecha de nacimiento, si es diestro o siniestro,
que enfermedades ha tenido, fechas de ciertas vacunas, etc. Ademas,
puedo ingresar a varios empleados en una sola tanda, podrian ser 10 o 3
o 5, etc.
o si prefieres que la ordenacion se realice despues de haberse capturado
-todos- los datos del empleado 'nuevo' ?


Seria bueno que la ordenacion y la autonumeracion se haga cuando cierre
el libro, esto depues de ingresar a todos los empleados.

Hector, gracias nuevamente, si deseas que te envie el modelo, hazmelo
szaber y con gusto te le envio a tu correo.
Respuesta Responder a este mensaje
#3 Héctor Miguel
25/09/2006 - 18:32 | Informe spam
hola, Alejandro !

Los apellidos y nombres van en celdas separadas.
La captura es lineal, osea, ingreso varios datos ademas del nombre y apellido, tales como fecha de nacimiento,
si es diestro o siniestro, que enfermedades ha tenido, fechas de ciertas vacunas, etc.
Ademas, puedo ingresar a varios empleados en una sola tanda, podrian ser 10 o 3 o 5, etc.
Seria bueno que la ordenacion y la autonumeracion se haga cuando cierre el libro, esto depues de ingresar a todos los empleados...



prueba con las siguientes lineas en el modulo de codigo del libro [ThisWorkbook]
[modifica donde mis supuestos se equivoquen] :D

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Worksheets("hoja1")
.Range("a1").CurrentRegion.Sort _
Key1:=.Columns("a"), Order1:=xlAscending, _
Key2:=.Columns("b"), Order2:=xlAscending, _
Key3:=.Columns("c"), Order3:=xlAscending, _
Header:=xlYes
End With
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 Alejandro Garcia
25/09/2006 - 22:56 | Informe spam
Sencillamente ¡EXCELENTE!, mil gracias Hector es un trabajo exclente,
funciona a las mil maravillas.

Ahora solo me faltaria que luego de organizar me colocara el
consecutivo correspondiente en la primera columana, pues todos los
nombres estan numerados consecutivamente, 1, 2, 3, etc. y cuando lo
ingreso la idea es que este numero se genere automaticamente
dependiendo del lugar que quede en la hoja. Habia pensado algo asi,
¡+1 y hacia un copiado pero cuando ingerso una fila nueva ¿como copio
automaticamente la formula?

Gracias por lo sugerido.
Respuesta Responder a este mensaje
#5 Héctor Miguel
26/09/2006 - 03:20 | Informe spam
hola, Alejandro !

... solo me faltaria que luego de organizar me colocara el consecutivo correspondiente en la primera columana
pues todos los nombres estan numerados... 1, 2, 3, etc. y cuando lo ingreso la idea es que este numero
se genere automaticamente dependiendo del lugar que quede en la hoja.
Habia pensado algo asi, ¡+1 y hacia un copiado pero cuando ingerso una fila nueva
como copio automaticamente la formula?



1) si las 'posiciones' que ocupe cada nombre luego de la ordenacion cambian... 'esa' formula va a mostrar 'discrepancias' :-(

2) si prefieres que la numeracion sea por formula... modifica la del primer registro [p.e. 'A2'] a: -> =contara($b$1:b2)-1
[solo que 'tendrias' que estar replicando la formula para cada registro nuevo] -?-

3) si la columna 'numerada' va a ser la columna 'A'... necesitaras cambiar las referencias para la ordenacion en la macro...
[p.e.] a las columnas donde se reflejen los datos a ordenar... digamos... cambiar de .Columns("a") ["b" y "c"] a... ???

4) si prefieres que la 'auto-numeracion' se haga NO por formulas... sino por 'generacion numerica progresiva'...
prueba la siguiente modificacion a la propuesta inicial [ojo con las columnas de datos a 'sortear']...

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Worksheets("hoja1").Range("a1").CurrentRegion
.Sort _
Key1:=.Columns("b"), Order1:=xlAscending, _
Key2:=.Columns("c"), Order2:=xlAscending, _
Key3:=.Columns("d"), Order3:=xlAscending, _
Header:=xlYes
.Cells(2, 1) = 1
.Offset(1).Resize(.Rows.Count - 1, 1).DataSeries _
Rowcol:=xlColumns, Type:=xlLinear, Step:=1
End With
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida