Jump to content
Sign in to follow this  
Nanlu

Macro para ordenar datos de mayor a menor automáticamente.

Recommended Posts

Hola, Buen día a todos!!

Tengo un archivo en el cual: en una hoja se captura la información de los defectos de algunos productos y otra que muestra las estadisticas mensuales por tipo de falla actualizadas de acuerdo a la informacion que se captura previamente en la primera hoja. En la hoja de estadisticas se registran la cantidad de veces que se presento la falla por mes y el porcentaje que representa, pero los datos se muestran dispersos y si los ordeno manualmente afecto otro datos que tengo en columnas adjuntas, ya que son varios tipos de productos y cada uno requiere una tabla diferente.

Necesito su ayuda para agregarle un macro que ordene los datos de mayor a menor automaticamente segun se vayan ingresando en la hoja XXX. Anexare el archivo

Espero puedan ayudarme

Gracias

:D

Reporte ejemplo.xls

Share this post


Link to post
Share on other sites

Este codigo ordena automaticamente cuando hay un cambio en la columna A:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Application.EnableEvents = False
Columns("A").Sort Key1:=Range("A1"), Order1:=xlDescending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Application.EnableEvents = True
End If
End Sub[/CODE]

Share this post


Link to post
Share on other sites

Muchas gracias nachobm por tu aportación pero lo que yo tenia en mente es que se ordenara la columna "NC Qty" de la hoja llamada "estadisticas" al introducir datos nuevos datos en la hoja XXX, puesto que de ahi se va tomando la información para actualizar las tablas, no tengo mucha experiencia programando macros, y aun no se si eso sea posible pero espero que me puedan ayudar. gracias!

- - - - - Mensaje combinado - - - - -

Gracias Armando Montes tengo que pegar ese codigo en el modulo de la hoja?

Te agradeceria una explicacion mas a fondo, si tienes tiempo, por favor :D

Share this post


Link to post
Share on other sites

Por ser Worksheet_Change debe ir en el modulo de la hoja.

El codigo funciona para la columna 1 o A, para la columna C usa columna 3 y done se meciona columna A cambiala tambien a C.

Si no te resulta avisa y subire tu libro con el codigo incorporado.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.

Sign in to follow this  



  • Posts

    • Buenos días!   Amigos del foro quisiera solicitarles el apoyo para resolver el siguiente problema, necesito una macro que me permita copiar de una hoja a otra si se cumplen los siguientes criterios: Si el valor en la columna G de la hoja Diario es mayor que cero, se copien los datos de Diario(hasta la ultima celda con datos) a la hoja BD pegando los datos en la ultima celda vacía de BD. Al copiar aquellos valores mayores a cero en la hoja BD quitarlos de la hoja Diario, solamente dejando los datos que contengan cero o se encuentren vacios en la columna G de la hoja Diario. Lo estuve intentando de la siguiente manera: Sub copiar2() Set J1 = Sheets("Diario") Set J2 = Sheets("BD") j = J2.Range("A" & Rows.Count).End(xlUp).Row + 1 For i = 3 To 79 If J1.Cells(i, "G") > 0 Then J2.Cells(i, "A") = J1.Cells(i, "A") J2.Cells(i, "B") = J1.Cells(i, "B") J2.Cells(i, "C") = J1.Cells(i, "C") J2.Cells(i, "D") = J1.Cells(i, "D") J2.Cells(i, "E") = J1.Cells(i, "E") J2.Cells(i, "F") = J1.Cells(i, "F") J2.Cells(i, "G") = J1.Cells(i, "G") J2.Cells(i, "H") = J1.Cells(i, "H") J2.Cells(i, "I") = J1.Cells(i, "I") J2.Cells(i, "J") = J1.Cells(i, "J") J2.Cells(i, "K") = J1.Cells(i, "K") J2.Cells(i, "L") = J1.Cells(i, "L") J2.Cells(i, "M") = J1.Cells(i, "M") J2.Cells(i, "N") = J1.Cells(i, "N") End If Next MsgBox "Valores copiados" End Sub Saludos JB Consulta copiado.xlsm
    • Hola! También puedes poner =Valor(A2), luego copiar y pegar valores
    • Cielos no se que decir, siempre me sorprenden; ambos casos son buenos. Aun no termino de analizar el código bien, pero en cuanto termine les haré saber de antemano muchas gracias.
    • Si te vas al explorador del proyecto VBA, en el árbol de módulos, puedes ver la hoja "aux"  Te adjunto otro método, trabajando con una matriz y como te lo comenté al inicio, trasladando los registros visibles   Saludos! Importar datos de otro libro.zip
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy