# continuo con el ordenamiento



## jorgeg_14 (Apr 15, 2002)

Juan Pablo, muchas gracias por tu ayuda, de verdad me ha servido de mucho, solo te quisiera preguntar por ultimo, cual es el formato que tengo que poner si quiero ordenar algo 

por ejemplo 


Nombre Edad Sueldo 
Jorge  25   $458 
Pedro  65   $125 
Juan   12   $478 
Pablo  78   $100 

si tengo esa tabla y quiero ordenar la tabla ya sea ascendente o descendente pero basandome como primer criterio en la columna C y despues en la columna B 

como cabiaria esto el formato que me diste 
del codigo del change

Gracias de antemano


----------



## Juan Pablo González (Apr 18, 2002)

Es cambiar el rango Rng por A1:C10 o lo que sea.  Después, (La ayuda de VBA sirve mucho para esto) hay que poner el Key1 como Range("B1") y Key2 como Range("C1") si se quiere que ordene primero por la columna 2 y después por la 3.  Con Order1 y Order2 se le da la opción de que sea ascendente o descendente.


----------



## jorgeg_14 (Apr 18, 2002)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range

Set Rng = Range("A8:F12")

If Not Intersect(Target, Rng) Is Nothing Then _ Rng.Sort Key1:=Rng.Range("F8"), Order1:=xlDescending, Key2:=("C8"), Order2:=x1Descending

End Sub

Juan Pablo, asi es como puse  el formato para poder ordenar como te habia dicho, pero al efectuar cambios en mi tabla ,me manda a la pagina de visual y me marca el error 1004 en tiempo de ejecución , que es lo que esta mal o que me esta formato

Gracias de antemano


----------



## Juan Pablo González (Apr 18, 2002)

hay varios detallitos:



> If Not Intersect(Target, Rng) Is Nothing Then _ Rng.Sort Key1:=Rng.Range("F8"), Order1:=xlDescending, Key2:=("C8"), Order2:=x1Descending



Order2:=x1Descending --> Order2:=xlDescending
Key1:=Rng.Range("F8") --> Key1:=Rng.Range("F8")
Key2:=("C8") --> Key2:=Rng.Range("C1")

Creo que con esos cambios debería funcionar.


----------



## jorgeg_14 (Apr 18, 2002)

oye disculpame mucho la molestia que te causo, lo que pasa es que no he manejado mucho VBA entonces me crea mucho errores

Lo puse exactamente como me lo pusiste y me crea errores, de que me dice que no existe sub o funcion y tambien me marca varios errores y por ejemplo Key1:=Rng.Range ("F8") me marca amarillo los 2 puntos y el igual, y varios errores asi, me puedes decir en definitivo somo debo de poner el formato para que ya no me cree tantos errores ,porfavor, con lo que me dices le he estado investigando pero la verdad no me resulta nada de lo que hago, como debo de poner exactamente en el codigo de la hoja para que me haga lo que quiero, y aveces tambien me marca en amarillo el

Private Sub Worksheet_Change(ByVal Target As Range)

y varios errores como esos, porfavor te pido tu ayuda en esto, muchas gracias


----------



## jorgeg_14 (Apr 30, 2002)

Juan Pablo te agradecería mucho tu respuesta

Gracias


----------



## Juan Pablo González (May 2, 2002)

Lamentablemente no dispongo de mucho tiempo para hacer esto, como me gustaría.

Creo que la mejor forma es grabar un macro y mirar la escritura correcta.


----------

