Bonjour,
J'aimerais classer les données de mon tableau ci dessus suivant les priorités de la premiere colonne (de 1 à n)
Quelqu'un pourrais m'aider?
Bonjour,
J'aimerais classer les données de mon tableau ci dessus suivant les priorités de la premiere colonne (de 1 à n)
Quelqu'un pourrais m'aider?
Bonjour,
En utilisant l'enregistreur de macro, tu aurais eu ce code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub Macro2() ' ' Macro2 Macro ' Macro enregistrée le 15/02/2012 par jerome.fontaine ' ' Range("A4:C10").Sort Key1:=Range("A5"), Order1:=xlAscending, Key2:=Range( _ "C5"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _ :=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _ DataOption2:=xlSortNormal End Sub
j'avais effectivement oublié d'utiliser l'enregistreur de macros et finalement j'obtiens cela grace à "Selection.sort key:
sauf que le probleme que je rencontre c'est que j'ai des cellulles fusionnées et je ne sais pas comment faire marcher ma macro sans defusionner mes cellules?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 sub macro() lmaxrow = currentws.Range("A65536").End(xlUp).Row lmaxcol = currentws.Cells(1, currentws.Cells.Columns.Count).End(xlToLeft).Column currentws.Activate currentws.Rows(5 & ":" & lmaxrow).Select Selection.Sort Key1:=Range(currentws.Cells(5, lmaxcol), currentws.Cells(5, lmaxcol)), Order1:=xlAscending end sub
Désolé, mais la je ne suis pas sur que ça puisse fonctionner avec des fusions. (Du moins, personnellement, je ne sais pas faire)
Bonjour,
J'ai finalement trouvé la reponse en creusant un peu sur internet.
J'ai utilisé la commande "UnMerge" : cette méthode scinde une zone fusionnée en cellules individuelles pour traiter mes données.
Voici le code final:
merci en tout cas de m'avoir aidé pour le tri!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub tester() Dim maxcol As Long Dim maxrow As Long maxrow = currentws.Range("A65536").End(xlUp).Row maxcol = currentws.Cells(4, currentws.Cells.Columns.Count).End(xlToLeft).Column currentws.Range(5 & ":" & maxrow).UnMerge currentws.Range(5 & ":" & maxrow).select Selection.Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlGuess, ordercustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, dataoption1:=xlSortNormal end sub![]()
Partager