Une Macro pour effectuer un tri spécifique? Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
v
videocontact
Membre fidèle
Membre fidèle
Messages : 164
Appréciation reçue : 1
Inscrit le : 25 mars 2011
Version d'Excel : 2016 EN

Message par videocontact » 15 février 2019, 10:29

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.
Classement Fidèlité Poker Test.xlsm
(85.22 Kio) Téléchargé 2 fois
Modifié en dernier par videocontact le 15 février 2019, 10:37, modifié 1 fois.
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'373
Appréciations reçues : 669
Inscrit le : 27 août 2012
Version d'Excel : 365 Personnel

Message par Jean-Eric » 15 février 2019, 10:34

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.
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
v
videocontact
Membre fidèle
Membre fidèle
Messages : 164
Appréciation reçue : 1
Inscrit le : 25 mars 2011
Version d'Excel : 2016 EN

Message par videocontact » 15 février 2019, 10:38

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.
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'373
Appréciations reçues : 669
Inscrit le : 27 août 2012
Version d'Excel : 365 Personnel

Message par Jean-Eric » 15 février 2019, 10:43

Re,
Il n'y a pas de fichier. :oops:
Cdlt.
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
v
videocontact
Membre fidèle
Membre fidèle
Messages : 164
Appréciation reçue : 1
Inscrit le : 25 mars 2011
Version d'Excel : 2016 EN

Message par videocontact » 15 février 2019, 10:47

Ah zut, je pensait l'avoir pourtant ajouté, le voici alors en annexe
Classement Fidèlité Poker Test.xlsm
(85.22 Kio) Téléchargé 5 fois
Avatar du membre
Florian53
Membre dévoué
Membre dévoué
Messages : 617
Appréciations reçues : 51
Inscrit le : 3 juin 2015
Version d'Excel : Office 365

Message par Florian53 » 15 février 2019, 11:00

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
Les grandes réussites sont le fruit de l'apprentissage durable. Apprenez à apprendre chaque jour.

:btres:
v
videocontact
Membre fidèle
Membre fidèle
Messages : 164
Appréciation reçue : 1
Inscrit le : 25 mars 2011
Version d'Excel : 2016 EN

Message par videocontact » 15 février 2019, 11:08

Merci à vous les amis, j'ai mon bonheur.
Avatar du membre
Florian53
Membre dévoué
Membre dévoué
Messages : 617
Appréciations reçues : 51
Inscrit le : 3 juin 2015
Version d'Excel : Office 365

Message par Florian53 » 15 février 2019, 11:10

Le code te convient ?
Les grandes réussites sont le fruit de l'apprentissage durable. Apprenez à apprendre chaque jour.

:btres:
v
videocontact
Membre fidèle
Membre fidèle
Messages : 164
Appréciation reçue : 1
Inscrit le : 25 mars 2011
Version d'Excel : 2016 EN

Message par videocontact » 15 février 2019, 11:14

J'avais justement reçu une Macro d'un autre membre du forum et cela fonctionne, donc top.
v
videocontact
Membre fidèle
Membre fidèle
Messages : 164
Appréciation reçue : 1
Inscrit le : 25 mars 2011
Version d'Excel : 2016 EN

Message par videocontact » 15 février 2019, 11:18

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.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message