Macro tri tableau - pb-
Résolu/Fermé
benji71
Messages postés
738
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
4 janvier 2015
-
19 juil. 2013 à 19:00
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 - 22 juil. 2013 à 08:29
benji71 Messages postés 738 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 4 janvier 2015 - 22 juil. 2013 à 08:29
A voir également:
- Macro tri tableau - pb-
- Tableau croisé dynamique - Guide
- Trier tableau excel - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
10 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
19 juil. 2013 à 20:23
19 juil. 2013 à 20:23
Bonjour,
Range("k3:l35").Sort Key1:=Range("l2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Key1:=Range("l2") : non, c'est en dehors de ta plage. Donc L3 (ou K3 si tu veux trier par nom)
Header:=xlYes : non, tu n'as pas de ligne de titre, donc xlno
Range("k3:l35").Sort Key1:=Range("L3"), Order1:=xlAscending, Header:=xlNo
devrait suffire.
eric
Range("k3:l35").Sort Key1:=Range("l2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Key1:=Range("l2") : non, c'est en dehors de ta plage. Donc L3 (ou K3 si tu veux trier par nom)
Header:=xlYes : non, tu n'as pas de ligne de titre, donc xlno
Range("k3:l35").Sort Key1:=Range("L3"), Order1:=xlAscending, Header:=xlNo
devrait suffire.
eric
benji71
Messages postés
738
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
4 janvier 2015
23
20 juil. 2013 à 09:57
20 juil. 2013 à 09:57
bonjour eriiic, bonjour à tous,
merci à vous de m'avoir répondu. mais visiblement il y a qq chose que j'ai pas compris car cela ne fonctionne pas. voici le macro que je placé :
Private Sub Worksheet_Change(ByVal Target As Range)
Static EnCours As Boolean 'Evite l'effet de boucle sur l'évènement Change()
If EnCours Then Exit Sub
If Not Application.Intersect(Target, Range("k3:l35")) Is Nothing Then
EnCours = True
Range("k3:l35").Sort Key1:=Range("L3"), Order1:=xlAscending, Header:=xlNo
EnCours = False
End If
End Sub
mais ,cela n'a pas d'effet.. :-(
je ne comprends pas...
l'objectif es de trier la tableau sur base de la colonne L mais ça prends pas...
aurai-je commis une erreur ?
merci de votre aide...
cdlmnt,
berni//
merci à vous de m'avoir répondu. mais visiblement il y a qq chose que j'ai pas compris car cela ne fonctionne pas. voici le macro que je placé :
Private Sub Worksheet_Change(ByVal Target As Range)
Static EnCours As Boolean 'Evite l'effet de boucle sur l'évènement Change()
If EnCours Then Exit Sub
If Not Application.Intersect(Target, Range("k3:l35")) Is Nothing Then
EnCours = True
Range("k3:l35").Sort Key1:=Range("L3"), Order1:=xlAscending, Header:=xlNo
EnCours = False
End If
End Sub
mais ,cela n'a pas d'effet.. :-(
je ne comprends pas...
l'objectif es de trier la tableau sur base de la colonne L mais ça prends pas...
aurai-je commis une erreur ?
merci de votre aide...
cdlmnt,
berni//
benji71
Messages postés
738
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
4 janvier 2015
23
20 juil. 2013 à 10:42
20 juil. 2013 à 10:42
le problème pourrait-il provenir du fait qu'il y a des les cellules k3:k35 une formule ?
j'ai essayé sur un autre tableau et sans formule et ça semble sauf que le classement ne se fait pas du plus élevé au moins élevé mais du mois élevé au plus élevé.
j'ai essayé sur un autre tableau et sans formule et ça semble sauf que le classement ne se fait pas du plus élevé au moins élevé mais du mois élevé au plus élevé.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
20 juil. 2013 à 10:50
20 juil. 2013 à 10:50
Bonjour,
dans la colonne L (difficile de savoir si c'est I majuscule ou L miniscule!!!) tu as
une formule
L'événement "change" ne réagit que sur saisie et non sur calcul d'une cellule...
dans la colonne L (difficile de savoir si c'est I majuscule ou L miniscule!!!) tu as
une formule
L'événement "change" ne réagit que sur saisie et non sur calcul d'une cellule...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
benji71
Messages postés
738
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
4 janvier 2015
23
20 juil. 2013 à 11:02
20 juil. 2013 à 11:02
Bonjour michel_m,
j'ai une formule en l3:l35.
voici le fichier avec la modification proposé par eriiic :https://www.cjoint.com/?3Gula7nYcgJ
merci pour votre aide
cdlmnt,
berni////
j'ai une formule en l3:l35.
voici le fichier avec la modification proposé par eriiic :https://www.cjoint.com/?3Gula7nYcgJ
merci pour votre aide
cdlmnt,
berni////
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
20 juil. 2013 à 11:46
20 juil. 2013 à 11:46
désolé, je dois partir!...
bon après midi
bon après midi
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
20 juil. 2013 à 12:23
20 juil. 2013 à 12:23
Bonjour à tous,
voici le fichier avec la modification proposé par eriiic
Non, j'avais mis Key1:=Range("L3") et tu as laissé Key1:=Range("L2")
sauf que le classement ne se fait pas du plus élevé au moins élevé mais du mois élevé au plus élevé.
Ca trie dans l'ordre que tu lui indiques : Order1:=xlAscending
Si tu te mettais sur .Sort et que tu faisais F1 ?
Et comme dit michel :
L'événement "change" ne réagit que sur saisie et non sur calcul d'une cellule...
Donc soit tu revalides une des cellule de K3:L35 (mets tes ref en majuscule stp), soit tu mets ta macro sur un bouton, soit tu supervises les cellules nécessitant un nouveau tri (colonnes D et/ou E sans doute)
eric
voici le fichier avec la modification proposé par eriiic
Non, j'avais mis Key1:=Range("L3") et tu as laissé Key1:=Range("L2")
sauf que le classement ne se fait pas du plus élevé au moins élevé mais du mois élevé au plus élevé.
Ca trie dans l'ordre que tu lui indiques : Order1:=xlAscending
Si tu te mettais sur .Sort et que tu faisais F1 ?
Et comme dit michel :
L'événement "change" ne réagit que sur saisie et non sur calcul d'une cellule...
Donc soit tu revalides une des cellule de K3:L35 (mets tes ref en majuscule stp), soit tu mets ta macro sur un bouton, soit tu supervises les cellules nécessitant un nouveau tri (colonnes D et/ou E sans doute)
eric
benji71
Messages postés
738
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
4 janvier 2015
23
21 juil. 2013 à 19:03
21 juil. 2013 à 19:03
bonjour eriiic,
merci de votre réponse. désolé de répondre seulement maintenant mais j'ai eu des souci d'accès à l'internet (mon pc me lâche).
j'ai bine compris votre message. en résumé si je comprends bien ma macro doit devenir :
Private Sub Worksheet_Change(ByVal Target As Range)
Static EnCours As Boolean 'Evite l'effet de boucle sur l'évènement Change()
If EnCours Then Exit Sub
If Not Application.Intersect(Target, Range("K3:L35")) Is Nothing Then
EnCours = True
Range("K3:L35").Sort Key1:=Range("L3"), Order1:=Descending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
EnCours = False
End If
End Sub
mais celle-ci ne marche" pas car j'ai des formules dans ma colonne L.
correct ?
si je veux appliquer une macro je dois :
soit créer un bouton pour mettre la macro,
soit je passe par une autre colonne pour appliquer la macro
soit et là j'ai pas compris, je "revalide une des cellule de K3:L35" qu'entendez-vous par revalidez ?
je reposte le fichier : https://www.cjoint.com/?3GvtcSBdX0Z
mais je crois que les carottes sont cuites :-) (comme ça je le sais pour la prochaine)
très cdlmnt,
berni///
merci de votre réponse. désolé de répondre seulement maintenant mais j'ai eu des souci d'accès à l'internet (mon pc me lâche).
j'ai bine compris votre message. en résumé si je comprends bien ma macro doit devenir :
Private Sub Worksheet_Change(ByVal Target As Range)
Static EnCours As Boolean 'Evite l'effet de boucle sur l'évènement Change()
If EnCours Then Exit Sub
If Not Application.Intersect(Target, Range("K3:L35")) Is Nothing Then
EnCours = True
Range("K3:L35").Sort Key1:=Range("L3"), Order1:=Descending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
EnCours = False
End If
End Sub
mais celle-ci ne marche" pas car j'ai des formules dans ma colonne L.
correct ?
si je veux appliquer une macro je dois :
soit créer un bouton pour mettre la macro,
soit je passe par une autre colonne pour appliquer la macro
soit et là j'ai pas compris, je "revalide une des cellule de K3:L35" qu'entendez-vous par revalidez ?
je reposte le fichier : https://www.cjoint.com/?3GvtcSBdX0Z
mais je crois que les carottes sont cuites :-) (comme ça je le sais pour la prochaine)
très cdlmnt,
berni///
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
21 juil. 2013 à 20:59
21 juil. 2013 à 20:59
Bonsoir,,
mais celle-ci ne marche" pas car j'ai des formules dans ma colonne L.
correct ?
Tout à fait, l'évènement Change n'est déclenché que sur une saisie. Et tes saisies nécessitant un recalcul se font en D.
Et Order1:=xlDescending
soit et là j'ai pas compris, je "revalide une des cellule de K3:L35" qu'entendez-vous par revalidez ?
Tu double-cliques en K3 comme si tu voulais l'éditer et tu valides. Ca déclenche l'évènement Change comme c'est une saisie.
Mais surveille D :
Dès que tu saisiras une commune le classement se refera.
eric
mais celle-ci ne marche" pas car j'ai des formules dans ma colonne L.
correct ?
Tout à fait, l'évènement Change n'est déclenché que sur une saisie. Et tes saisies nécessitant un recalcul se font en D.
Et Order1:=xlDescending
soit et là j'ai pas compris, je "revalide une des cellule de K3:L35" qu'entendez-vous par revalidez ?
Tu double-cliques en K3 comme si tu voulais l'éditer et tu valides. Ca déclenche l'évènement Change comme c'est une saisie.
Mais surveille D :
Private Sub Worksheet_Change(ByVal Target As Range) Static EnCours As Boolean 'Evite l'effet de boucle sur l'évènement Change() If EnCours Then Exit Sub If Not Application.Intersect(Target, Range("D:D")) Is Nothing Then EnCours = True Range("K3:L35").Sort Key1:=Range("L3"), Order1:=xlDescending, Header:=xlNo EnCours = False End If End Sub
Dès que tu saisiras une commune le classement se refera.
eric
benji71
Messages postés
738
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
4 janvier 2015
23
22 juil. 2013 à 08:29
22 juil. 2013 à 08:29
bonjour eriiic,
super ! ça marche !
un tout grand merci pour votre réponse et de votre patience.
je vous souhaite une belle journée...
cdlmnt,
berni///
super ! ça marche !
un tout grand merci pour votre réponse et de votre patience.
je vous souhaite une belle journée...
cdlmnt,
berni///
20 juil. 2013 à 09:55
merci à vous de m'avoir répondu. mais visiblement il y a qq chose que j'ai pas compris car cela ne fonctionne pas. voici le macro que je placé :
Private Sub Worksheet_Change(ByVal Target As Range)
Static EnCours As Boolean 'Evite l'effet de boucle sur l'évènement Change()
If EnCours Then Exit Sub
If Not Application.Intersect(Target, Range("k3:l35")) Is Nothing Then
EnCours = True
Range("k3:l35").Sort Key1:=Range("L3"), Order1:=xlAscending, Header:=xlNo
EnCours = False
End If
End Sub
mais ,cela n'a pas d'effet.. :-(
je ne comprends pas...
l'objectif es de trier la tableau sur base de la colonne L mais ça prends pas...
aurai-je commis une erreur ?
merci de votre aide...
cdlmnt,
berni///