Tri dans excel
Résolu/FerméOlivelena Messages postés 7 Date d'inscription mercredi 18 octobre 2023 Statut Membre Dernière intervention 19 octobre 2023 - 19 oct. 2023 à 16:28
- Tri dans excel
- Liste déroulante excel - Guide
- Trier sur excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
11 réponses
18 oct. 2023 à 15:20
Bonjour
Le fichier est protégé par un mot de passe ?
Cdlmnt
Modifié le 18 oct. 2023 à 16:32
Bonjour
plages nommées dynamiquement
Tri=DECALER(CCM!$B$3;0;0;NB(CCM!$B:$B);10)
CleDate=DECALER(CCM!$D$3;0;0;NB(CCM!$B:$B);1)
CleOperation=DECALER(CCM!$E$3;0;0;NB(CCM!$B:$B);1)
Et dans le code de la procedure Classe, tu remplaces les plages en dur par celles-ci (comme tu as fait pour la plage Tri)
Je ne peux pas tester ton code, mon vieil excel 2003 ne reconnait pas certaines instructions
Une remarque au passage; dans ta colonne H par exemple en H4, la formule
=H3+F4-G4 fait appel à H3, il va y avoir un pb lorsque le tri sera fait.
Cdlmnt
Modifié le 18 oct. 2023 à 18:28
Bonjour
plage en dur : Range("B4:K11086") où tu donnes l'adresse dans la feuille
après avoir renommé les plages bien sûr (c'est ce qu tu as fait pour la plage Tri un peu plus loin)
ActiveWorkbook.Worksheets("CCM").Sort.SortFields.Add2 Key:=Range("CleDate") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("CCM").Sort.SortFields.Add2 Key:=Range("CleOperation") _
Pour ton info, la plage de B3 à K3 n'intègre pas la plage nommée "Tri", donc aucune incidence pour le classement
Chez toi, la plage Tri=CCM!$B$3:$K$11089 intègre la colonne H (où il y a les formules), donc si tu veux arrêter le tri à la colonne G, il faut modifier sa définition et ne prendre que 6 colonnes au lieu de 10.
Tri =DECALER(CCM!$B$3;0;0;NB(CCM!$B:$B);6)
RQ. Pour trier, peut être simplement
Sub Trier() With Sheets("CCM") .Range("Tri").Select Selection.Sort key1:=.Range("D3"), order1:=xlAscending, _ key2:=.Range("E3"), order2:=xlAscending .Range("A1").Select End With End Sub
Cdlmnt
18 oct. 2023 à 20:31
OK
Attention à tes lignes de début de plage
Tri=DECALER(CCM!$B$3;0;0;NB(CCM!$B:$B);10) 10 ou 6
CleDate=DECALER(CCM!$D$3;0;0;NB(CCM!$B:$B);1)
CleOperation=DECALER(CCM!$E$3;0;0;NB(CCM!$B:$B);1)
Bonne sooirée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question19 oct. 2023 à 16:28
Bonjour,
Bravoooo et Merciiii !!! à ccm81 qui a bien analysé la situation en proposant des solutions explicites et fiables car tout fonctionne à merveille avec le code simple Sub Trier() que j'ai modifié et adapté pour que mon curseur se positionne à la fin de la colonne B une fois le code exécuté.
Encore merci ceci me facilite l'existence, depuis le temps que j'attendais cela.....
Bonne réception et bonne soirée.
Cdt
18 oct. 2023 à 15:29
Bonjour,
Merci pour votre réponse rapide, voici le MP kiki'' avec toutes mes excuses...
Bonne réception
Cordialement
Modifié le 18 oct. 2023 à 15:51
Bonjour.
Le mot de passe kiki" ne fonctionne pas ; le mot de passe kiki non plus !
Tu devrais enlever la protection toi-même, avant de nous envoyer le fichier ...
18 oct. 2023 à 15:54
Bonjour,
Merci pour votre réponse, je fais ça dès que possible.
Bonne réception
Cdt.
18 oct. 2023 à 16:01
Bonjour,
Pour info les deux apostrophes sont à taper séparément à partir de la touche 4 située en haut sous et entre les touches F4 & F5.
Bonne réception
Cdt
18 oct. 2023 à 18:04
Bonjour,
Me revoilà.
Voici l'intégralité du code actuel de la procédure "Classe":
Sub Classer()
'
' Classer Macro
' Classement croissant par dates
'
'
Application.Goto Reference:="Tri"
ActiveWorkbook.Worksheets("CCM").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("CCM").Sort.SortFields.Add2 Key:=Range("D4:D11086") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("CCM").Sort.SortFields.Add2 Key:=Range("E4:E11086") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("CCM").Sort
.SetRange Range("B4:K11086")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B4").Select
Selection.End(xlDown).Select
ActiveWindow.SmallScroll Down:=6
End Sub
Qu'appelles-tu les plages en dur ? Peux-tu les surligner STP, merci.
A quel endroit(s) du code faut-il remplacer par les plages nommées numériquement ?
Est-il possible, afin d'éviter de perdre notre temps et toutes confusions, que tu modifies le code dans son intégralité pour moi et je le copierais et le collerais en lieu et place du code actuel, merci beaucoup.
Pour ton info, la plage de B3 à K3 n'intègre pas la plage nommée "Tri", donc aucune incidence pour le classement.
Merci encore pour ta réponse.
Bonne réception.
Cdt
18 oct. 2023 à 19:52
Bonsoir,
Merci beaucoup.
Je vois ça demain pour l'adapter.
Bonne réception.
Cdt.