Excel 2003, 2 questions
Bonjour le forum,
Excel 2003
1ère question
J'ai créé 1 bouton qui lance un tri sur la colonne D dans un filtre automatique de A3:Q78 (ci-dessous)
Sub Trier()
Range("A3:Q78").Sort Key1:=Range("D3"), Order1:=xlDescending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End SubIl fonctionne correctement mais je souhaite ajouter un mini tri en plus quand j'ai des valeurs identiques en colonne D 850 dans mon exemple de trier selon l'ordre alphabétique de la colonne C aaa puis rrr puis zzz en faisant le tri d'abord par D puis par C
------------------------------------------------
2ème question
en Excel 2016 VBA, j'arrive à trouver le code couleur d'une cellule pour ensuite faire des tris, des calculs ...Etc.
est ce qu'en Excel 2003 dans une formule de préférence ou sinon en VBA, en haut de colonne comptabiliser le nombre de cellule avec un fond rose ?
pou exemple, j'ai écris 4 pour compter les cellules rose de G3:G22
Merci d'avance
Bonjour, pour la première question l'enregistreur macro vous aurez donné la formulation du double tri.
Range("A3:Q78").Select
Selection.Sort Key1:=Range("D3"), Order1:=xlAscending, Key2:=Range("C3") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormalBonjour,
Pour la question 2 ça ne me semble possible que si la couleur correspond à une coloration de type conditionnel. (MFC)
Dans ce cas un comptage se ferait sur la condition de remplissage.
Si c'est juste une coloration décorative je pense que ce n'était pas possible.
A+
Bonjour Xmenpl,
Merci beaucoup, j'ai un peu remanié car je n'avais pas assez bien précisé l'ordre de chaque colonne et en + je me suis trompée de colonne B au lieu de C ^^
et sinon que le tri dans votre réponse se faisait sur l'ensemble comme ci-dessous
Range("A3:Q78").Select
Selection.Sort Key1: ... Etc
et non pas
Range("A3:Q78").Sort Key1: ... Etc
Voici ce que ca donne et qui marche impeccable, encore Merci
Range("A3:Q78").Sort Key1:=Range("D3"), Order1:=xlDescending, Key2:=Range("B3") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormalPar contre, j'avais bien utilisé l'enregistreur de macro pour trouver le 1er tri
mais je n'ai pas trouvé comment obtenir les 2 tri en un seul code, est ce que vous pourriez SVP me l'expliquer comment vous avez fait ?
ca me sera très certainement utile, plutôt que de recopier le code ^^
Bonjour galopin01,
Merci pour votre réponse, je me doutais un peu qu'en version 2003 ça n'aurait pas été possible
Pour info, les couleur des cellules sont juste pour m'y retrouver et je n'ai pas vraiment besoin de le faire en MFC
du coup je vais compter à la main ^^
Bonjour Xmenpl,
Merci beaucoup, j'ai un peu remanié car je n'avais pas assez bien précisé l'ordre de chaque colonne et en + je me suis trompée de colonne B au lieu de C ^^
et sinon que le tri dans votre réponse se faisait sur l'ensemble comme ci-dessous
Range("A3:Q78").Select
Selection.Sort Key1: ... Etcet non pas
Range("A3:Q78").Sort Key1: ... EtcPar contre, j'avais bien utilisé l'enregistreur de macro pour trouver le 1er tri
mais je n'ai pas trouvé comment obtenir les 2 tri en un seul code, est ce que vous pourriez SVP me l'expliquer comment vous avez fait ?
ca me sera très certainement utile, plutôt que de recopier le code ^^
Re bonjour. il n'y a pas grande différence entre les deux formulations : Range("A3:Q78").Select = selection donc
Sélection.Sort = Range("A3:Q78").Sort
Concernant la méthode avec l'enregistreur de macro sur Excel 2003 :
- Début enregistrement / Sélection de la plage à trier / puis Donnés trier / et dans l'ordre vous indiquez jusqu'à trois option de tri croissant ou décroissant.
vous aurez ainsi un aperçu des lignes de code qui comme vous l'avez indiqué plus aux peuvent être simplifiée ensuite.