Une Macro pour effectuer un tri spécifique?

Bonjour à tous,

Pour terminer ma petite application, il me manque juste une Macro qui :

  • Elle doit me permettre de trier les colonnes de B à AI.
  • Les critêres de tris sont les suivants dans l'ordre:
1. Colonne AG/Valeur/du plus grand au plus petit

2. Colonne AH/Valeur/du plus grand au plus petit

3. Colonne AI/Valeur/Du plus petit au plus grand

Et ou en fait je bloque, c'est que parfois vient s'ajouter des lignes dans mon tableaux, donc la macro doit savoir chaque fois trier sur le total du nombre de lignes que contient mon tableau principal tout en sachant que d'autres lignes dans ma page existe après mon tableau mais sans être reprise dans le tri.

Bonjour,

Mets tes données sous forme de tableau (structuré, ou table de données).

Les tableaux sont dynamiques.

Pour plus d'informations, joins un un fichier à ta demande.

Cdlt.

Voilà j'ai placé mon fichier et ainsi probablement plus facile de comprendre ce que doit réaliser la Macro.

J'ai déjà placé une Macro de tri, mais celle-ci ne fonctionne plus quand des lignes sont ajoutées.

Re,

Il n'y a pas de fichier.

Cdlt.

Ah zut, je pensait l'avoir pourtant ajouté, le voici alors en annexe

Bonjour videocontact, Jean-Eric

Voici un essai :

Sub tri()

    With Sheets("Classement Fidèlité")
        DerniereLigne = .Range("A" & Rows.Count).End(xlUp).Row
        .Range(Cells(7, 2), Cells(DerniereLigne, 35)).Sort Key1:=.Range("AG7") _
        , Order1:=xlDescending, Key2:=Range("AH7"), order2:=xlDescending, Key3:=Range("AI7"), order3:=xlAscending, Header:=xlYes
    End With

End Sub

Merci à vous les amis, j'ai mon bonheur.

Le code te convient ?

J'avais justement reçu une Macro d'un autre membre du forum et cela fonctionne, donc top.

Je viens néanmoins de tester ta Macro, mais celle-ci renvoi une erreur dans cette ligne :

.Range(Cells(7, 2), Cells(DerniereLigne, 35)).Sort Key1:=.Range("AG7") _

, Order1:=xlDescending, Key2:=Range("AH7"), order2:=xlDescending, Key3:=Range("AI7"), order3:=xlAscending, Header:=xlYes

Pour information, voilà ma Macro reçue de Theze et qui fonctionne correctement :

Sub Tri()

Dim Plage As Range

With Worksheets("Classement Fidèlité")

.Unprotect

'redéfini la plage à partir de B7

Set Plage = .Range(.Cells(7, 2), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, .Cells(7, .Columns.Count).End(xlToLeft).Column))

'tri

Plage.Sort Plage.Columns(32), xlDescending, Plage.Columns(33), , xlDescending, Plage.Columns(34), xlDescending, xlNo

.Protect

End With

End Sub

Merci en tout cas de votre aide les amis ; un forum top.

Certainement du a la protection de ta feuille

Rechercher des sujets similaires à "macro effectuer tri specifique"