Ordernar base de datos según criterios
Esta pregunta la realice el 08/04, pero se ve que dio error el sistema que no la veo por ningún lado... Vuelvo a preguntarte y muchísimas gracias por tu ayuda
Hola Tavo, de vuelta al ataque una vez solucionado el tema de la casilla de verificación.
Intentare explicar que necesito: estoy armando una base de datos en la cual va creciendo a medida que se carga datos. La base abarca por el momento las columnas (A hasta K) y las filas van creciendo a medida que se cargan datos (obvio).
La idea es ordenar esta lista por algún criterio que por ahora son columna "F": Item o columna "I": Proveedores mediante 2 botones o si se puede que aparezca un menu o formulario y ahí elegir la opción que necesite al momento.
El problema que tienen las macros grabadas que te mantienen las referencias al momento del grabado, y como esta base crece no me sirve... Necesito que la macro busque la primera fila que seria "A7" y la ultima a saber.
En la web vi un código pero no lo pude hacer andar que es este, esto esta en modulo 1
Option Explicit
Private celdaactiva
Private Sub OrdenarItem()
' Sub OrdenarItem()
'
' OrdenarItem Macro
' Macro grabada el 26/03/2008 por AObrist
'
Rem este código localiza el ultimo registro por medio del renglón
Range("a7").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
Loop
Rem llega hasta el a26 donde no hay información y se regresa un renglón para ser exacto con la siguiente línea.
ActiveCell.Offset(-1, 0).Select
Rem este código localiza la última columna del último dato
Do While ActiveCell <> Empty
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Offset(0, -1).Select
Rem esta línea guarda en la variable celdaactiva la celda exacta donde esta el ultimo dato de la ultima columna de información, en este caso M25.
celdaactiva = ActiveCell.Address
Rem este código toma el rango desde A7 donde empieza la información, hasta donde encontró el ultimo dato M25, que lo guarda la variable celdaactiva. Selecciona de A7 hasta M25.
Range("A7:" + celdaactiva).Select
Selection.Sort Key1:=Range("e7"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
Tavo en caso que quieras que te mande el archivo me lo indicas, yo estaría super agradecido si me das una mano con esto.
Desde ya agradezco tu tiempo y atención y paciencia, un abrazo y a la espera de tu comentario
Veto
Hola Tavo, de vuelta al ataque una vez solucionado el tema de la casilla de verificación.
Intentare explicar que necesito: estoy armando una base de datos en la cual va creciendo a medida que se carga datos. La base abarca por el momento las columnas (A hasta K) y las filas van creciendo a medida que se cargan datos (obvio).
La idea es ordenar esta lista por algún criterio que por ahora son columna "F": Item o columna "I": Proveedores mediante 2 botones o si se puede que aparezca un menu o formulario y ahí elegir la opción que necesite al momento.
El problema que tienen las macros grabadas que te mantienen las referencias al momento del grabado, y como esta base crece no me sirve... Necesito que la macro busque la primera fila que seria "A7" y la ultima a saber.
En la web vi un código pero no lo pude hacer andar que es este, esto esta en modulo 1
Option Explicit
Private celdaactiva
Private Sub OrdenarItem()
' Sub OrdenarItem()
'
' OrdenarItem Macro
' Macro grabada el 26/03/2008 por AObrist
'
Rem este código localiza el ultimo registro por medio del renglón
Range("a7").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
Loop
Rem llega hasta el a26 donde no hay información y se regresa un renglón para ser exacto con la siguiente línea.
ActiveCell.Offset(-1, 0).Select
Rem este código localiza la última columna del último dato
Do While ActiveCell <> Empty
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Offset(0, -1).Select
Rem esta línea guarda en la variable celdaactiva la celda exacta donde esta el ultimo dato de la ultima columna de información, en este caso M25.
celdaactiva = ActiveCell.Address
Rem este código toma el rango desde A7 donde empieza la información, hasta donde encontró el ultimo dato M25, que lo guarda la variable celdaactiva. Selecciona de A7 hasta M25.
Range("A7:" + celdaactiva).Select
Selection.Sort Key1:=Range("e7"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
Tavo en caso que quieras que te mande el archivo me lo indicas, yo estaría super agradecido si me das una mano con esto.
Desde ya agradezco tu tiempo y atención y paciencia, un abrazo y a la espera de tu comentario
Veto
1 respuesta
Respuesta de tavopz
1