Foros del Web » Soporte técnico » Ofimática »

como ejecutar macro k ordene cualquier cantidad de celdas

Estas en el tema de como ejecutar macro k ordene cualquier cantidad de celdas en el foro de Ofimática en Foros del Web. Amigos quiero hacer una macro que realize subtotales, de hacerlo lo hago, el problema esta que en los datos primero que se ordenen y luego ...
  #1 (permalink)  
Antiguo 13/07/2006, 21:04
Avatar de carlosga  
Fecha de Ingreso: mayo-2005
Mensajes: 209
Antigüedad: 18 años, 11 meses
Puntos: 1
como ejecutar macro k ordene cualquier cantidad de celdas

Amigos quiero hacer una macro que realize subtotales, de hacerlo lo hago, el problema esta que en los datos primero que se ordenen y luego que se subtotalizan a veces son pocos y a veces son bastante entonces la macro se loquea.

Osea a veces tengo una hoja de calculo de la A1 a la B11, con esos datos preparo mi macro pero cuando la hoja es de la A1 a ka B8 la misma macro lanza error, como solucionar la macro

Yo preparo mi macro con los botones de excel con la barra de herramienta formulario
El problema es en el momento que ordena si he preparado la macro con las filas de la 1 a la 11 solo va a aceptar una hoja que tenga llenado de la 1 a la 11 si le doy una hoja que tenga de la 1 a la 8 o de la 1 a la 20 da errror

Estas son las formulas:


Sub Botón3_AlHacerClic()
'
' Botón3_AlHacerClic Macro
' Macro grabada el 13/07/2006 por user1
'

'
Windows("Libro1:2").Activate
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A2").Select
End Sub


el archivo es este
http://rapidshare.de/files/25790966/...TALES.xls.html

gracias amigos
  #2 (permalink)  
Antiguo 14/07/2006, 02:02
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Prueba esta macro, a ver si es lo que buscas:
Código:
Sub Ordenar()
On Error Resume Next
'Nos posicionamos en cualquier celda del rango de celdas a ordenar
ActiveCell.Activate
   'Si la celda donde estamos, está vacía,
    'nos desplazamos a la línea llamada "sin_orden"
    If Trim(ActiveCell.Value) = "" Then GoTo sin_orden
'Nos desplazamos a la primera celda del rango, siempre y cuando no estemos
'en la primera fila con datos
celda_inicial = ActiveCell.Address
If Trim(ActiveCell.Offset(-1, 0).Value) <> "" Then
    Selection.End(xlUp).Select
    celda_inicial = ActiveCell.Address
End If
'Nos desplazamos a la izquierda, por si estamos en una columna distinta
'de la primera (de la primera del rango que queremos ordenar, no de la primera columna
'de la hoja de cálculo, ya que puede que no queramos ordenar la columna A, por ejemplo).
'Nos desplazamos a la izquierda, solo si el dato de la columna de la izquieda no está vacío,
'ya que si lo está, no será un rango contínuo de celdas
If Trim(ActiveCell.Offset(0, -1).Value) <> "" Then
    Selection.End(xlToLeft).Select
    celda_inicial = ActiveCell.Address
End If
'Ahora que estamos en la primera celda de la izquierda del rango que queremos ordenar,
'seleccionamos todo el rango contínuo de celdas (hasta el final de datos contínuos)
If Trim(ActiveCell.Offset(1, 0).Value) <> "" Then Range(Selection, Selection.End(xlDown)).Select
If Trim(ActiveCell.Offset(0, 1).Value) <> "" Then Range(Selection, Selection.End(xlToRight)).Select
Selection.Sort Key1:=Range(celda_inicial), Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
Exit Sub
sin_orden:
   'Mostramos un mensaje de alerta indicando que no podemos ordenar nada,
    'ya que no hay datos para ordenar
   Mensaje = MsgBox(Chr(13) & "    No estás situado en una celda con datos," & Chr(13) & "    para poder proceder a ordenar el rango.    ", vbOKOnly, "Pues va a ser que no...")
End Sub
Salu2

Última edición por 3pies; 14/07/2006 a las 02:10
  #3 (permalink)  
Antiguo 14/07/2006, 16:31
Avatar de carlosga  
Fecha de Ingreso: mayo-2005
Mensajes: 209
Antigüedad: 18 años, 11 meses
Puntos: 1
Buena 3pies voy a probarla y te cuento como me va.
Y sabras de pag web que enseñen visual basic gratis?
es bastante interesante
chau
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:06.