Tri automatique sur Excel [Résolu/Fermé]

Julien - 24 janv. 2005 à 21:56 - Dernière réponse :  Talha
- 3 mai 2013 à 18:27
Bonjour,

J'ai un tableau sous excel dont les données sont alimentée par des formules.

J'aimerais savoir s'il est possible que le tri des des lignes soit réalisé automatiquement à la modification d'une valeur sans avoir à passer par Données/trier...

Merci.
Afficher la suite 

48 réponses

bremic83 34 Messages postés vendredi 8 mai 2009Date d'inscription 29 mars 2010 Dernière intervention - 8 mai 2009 à 18:41
0
Utile
Bonjour,je vois dans ce forum,la solution à un problème identique à celui que je cherche à résoudre,mais la solution proposée,je n'arrive pas à la mettre en application !
Il s'agit de la macro proposée par gbinforme ,le mardi 25 janvier 2005,figurant dans le forum "tri automatique sur Excel"
Pourrait-on me donner la marche à suivre pour appliquer cette macro sur Excel 2007 ?
Merçi à l'âme charitable qui voudra bien se pencher sur mon problème.
gbinforme 14538 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 16 janvier 2018 Dernière intervention - 9 mai 2009 à 08:23
0
Utile
2
bonjour bremic83,

Une macro "automatique" de tri doit être adaptée à ton classeur :

- que veux-tu trier ? une base de données structurée avec les rubriques en ligne 1 ?

- une partie de feuille de classeur ?

- sur combien de rubriques veux-tu trier ?

- as-tu déjà utilisé des macros ?
bremic83 34 Messages postés vendredi 8 mai 2009Date d'inscription 29 mars 2010 Dernière intervention - 9 mai 2009 à 09:14
Bonjour,gbinforme
Voiçi le problème:je veux trier les deux dernières colonnes d'un tableau.
L'avant-dernière totalise les sommes des précédentes,dont les données varient chaque jour.
La dernière contient les noms des lignes,et c'est cette liste de noms que je trie en ordre décroissant,selon les performances.
Manuellement,c'est facile,mais comme j'ai plusieurs tableaux à trier,celà devient vite fastidieux !
Je désire donc automatiser ce tri.
Je voudrais une méthode applicable à tous mes tableaux,qu'il s'agisse de macro ou de tout autre procédé.
Non,je n'ai jamais utilisé de macro,je débute en informatique.
Merçi de t'interesser à ma question,
A bientôt
bremic83 34 Messages postés vendredi 8 mai 2009Date d'inscription 29 mars 2010 Dernière intervention - 9 mai 2009 à 16:14
Voici un aperçu d'un tableau,en complément de mon message précédent,celà facilitera peut-être la compréhension du problème.
A plus,et encore merçi.


N J1 J2 J3 J4 J5 J6 Tot Clt

A 31 49 39 20 29 21 189 B
B 27 56 45 26 35 32 221 F
C 32 24 50 40 21 17 184 K
D 54 44 25 33 15 26 197 D
E 23 32 11 12 64 24 166 G
F 22 38 19 10 58 69 216 H
G 23 18 29 57 47 22 196 A
H 43 24 33 14 25 53 192 C
K 17 18 55 46 27 36 199 E
L 31 12 13 51 18 36 161 L
gbinforme 14538 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 16 janvier 2018 Dernière intervention - 9 mai 2009 à 23:12
0
Utile
1
bonjour

La dernière contient les noms des lignes,et c'est cette liste de noms que je trie en ordre décroissant,selon les performances

Je suppose que le tri décroissant se fait en fonction du total (colonne précédente) et non sur le nom car celui-ci ne doit pas varier ?
bremic83 34 Messages postés vendredi 8 mai 2009Date d'inscription 29 mars 2010 Dernière intervention - 10 mai 2009 à 09:16
Bonjour,
Exact,les données de la colonne en question ,sont les sommes des colonnes précédentes et ce sont elles qui
servent au classement des noms de la dernière colonne
gbinforme 14538 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 16 janvier 2018 Dernière intervention - 10 mai 2009 à 17:35
0
Utile
3
bonjour

Je désire donc automatiser ce tri. Je voudrais une méthode applicable à tous mes tableaux

Pour cela je te propose une macro complémentaire de tri paramétrable pour n'importe quel tableau.

http://www.cijoint.fr/cjlink.php?file=cj200905/cijJzXhlw8.zip

Tu décompresses le fichier tri.xla dans ton dossier

C:\Documents and Settings\mon_nom\Application Data\Microsoft\Macros complémentaires

Ensuite tu lances excel et dans le menu outils / macros complémentaires, tu coches "tri" et ta macro de tri est installée.

Dans tous les classeurs que tu veux trier, tu copies dans la feuille concernée la macro événementielle suivante (mode d'emploi éventuel)
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim retour
    retour = Run("trier", 1, "G", "D")
End Sub

En remplaçant éventuellement :
- 1 par le numéro de ligne à partir duquel tu veux trier
- G par la colonne de tri
- D pour tri descendant par A pour tri Ascendant.

Dès que tu modifieras ton classeur, ton tableau concerné sera trié.
bremic83 34 Messages postés vendredi 8 mai 2009Date d'inscription 29 mars 2010 Dernière intervention - 10 mai 2009 à 19:40
Merci d'avoir répondu aussi vite.
Je vais essayer d'assimiler le potage,car je suis loin d'avoir pigé le processus.
Je vais me faire expliquer certains termes que je ne comprends pas et essayer.
Je te ferai savoir si j'y suis arrivé ou non,car,pour l'instant,Laure Manaudou et Alain Bernard sont loin de nager autant que moi !
Encore merçi, et à plus
Bremic83
Bonjour gbinforme,
j'ai essayé ta macro et elle fonctionne très bien. Merci beaucoup. J'aimerais savoir si je suis capable de trier non pas pas descendant ni par ascendant, mais si je peux par cases non vides?

Merci beaucoup
gbinforme 14538 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 16 janvier 2018 Dernière intervention > axelanie - 13 août 2009 à 09:30
bonjour

Lorsque tu tries, les cellules vides sont mises en fin de tri et donc tes cases non vides arrivent en tête, dans l'ordre que tu choisis--

Toujours zen
gbinforme 14538 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 16 janvier 2018 Dernière intervention - 11 mai 2009 à 23:56
0
Utile
1
bonjour

je n'ai pas pu continuer,n'ayant pas trouvé :C:\Documents and Setting\ et la suite .

Tu es sous XP ou Vista ?

en changeant à chaque le n° de ligne

Le numéro de ligne doit rester le même car il n'est là que pour permettre de sauter les premières lignes si tu as un en-tête qui ne doit pas bouger et que le tableau à trier commence en ligne 8 par exemple. Tu peux aussi trier à partir de la colonne D (4) si tu précises le paramètre qui est implicitement 1 (A) :
retour = Run("trier", 1, "H", "D", 4)

Si par exemple tu as :
colonne A nom
colonne B prénom
colonne C age

Pour trier sur age , nom , prénom tu vas mettre les 3 lignes dans l'ordre inverse :
    retour = Run("trier", 1, "B", "A")
    retour = Run("trier", 1, "A", "A")
    retour = Run("trier", 1, "C", "D")

Ainsi ton tableau est trié colonne C puis A puis B
bremic83 34 Messages postés vendredi 8 mai 2009Date d'inscription 29 mars 2010 Dernière intervention - 12 mai 2009 à 09:19
Bonjour,
Je suis sous Vista

Bremic83
gbinforme 14538 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 16 janvier 2018 Dernière intervention - 12 mai 2009 à 09:47
0
Utile
1
bonjour

Dans ce cas il faut regarder dans c:\users\ etc

mais je n'ai pas vista.
Bonjour,
Je suis coincé pour ouvrir mon dossier "Documents and Settings",que j'ai enfin trouvé après bien des recherches,
lorsque je clique sur ouvrir,apparait un message d'erreur,:"Accès non autorisé",et je ne sais pas comment débloquer cette situation !
Connais-tu le problème,et si oui,as-tu une solution ?
gbinforme 14538 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 16 janvier 2018 Dernière intervention - 13 mai 2009 à 18:10
0
Utile
bonjour

a priori il faut libérer les fichiers systèmes :
Démarrer/Ordinateur et avec la touche Alt. afficher la barre d’outils en haut de la fenêtre
Menu Outils/Options des dossiers et onglet Affichage
décoches les cases
- Masquer les extensions des fichiers dont le type est connu
- Masquer les fichiers protégés du système d’exploitation
0
Utile
Bravo tu as fait vite.
J'avais trouvé cette solution sur le forum,je l'ai essayée sans résultat,à chaque fois que je veux ouvrir le dossier,je fais apparaitre la même fenêtre " dossier indisponible accès refusé "
J'ai voulu en essayer une autre:" INPLACE $.~dossier TR " mais je n'arrive pas à trouver le mode d'emploi !
D'ailleurs,je ne sais pas si elle serait valable dans mon cas .
La galère continue .
Comment fais tu pour rester toujours zen ?
A plus !
Bremic83
gbinforme 14538 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 16 janvier 2018 Dernière intervention - 13 mai 2009 à 22:10
Bonjour
Bravo,ça marche l'appropriation du dossier dont l'accès était refusé,merçi !
Un autre problème surgit: J'ai enregistré sur tes conseils,la macro tri.xla,mais maintenant,que je voudrais la transférer dans le dossier "Documents and Settings",une fenêtre d'erreur apparait qui me dit :"Windown ne trouve pas le dossier X vérifiez et recommencez "
J'ai déjà rencontré le même cas pour transférer un dossier dans excel et je n'ai toujours pas la solution.
En as-tu une ?
gbinforme 14538 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 16 janvier 2018 Dernière intervention - 15 mai 2009 à 16:05
0
Utile
1
bonjour

je voudrais la transférer dans le dossier "Documents and Settings"

Attention il me semble que sur Vista ce répertoire est remplacé par "users"

Ensuite tu devrais trouver "Application Data\Microsoft\Macros complémentaires"
Bonjour,
la galère continue,je n'ai toujours pas compris pourquoi "Windows ne trouve pas mes dossiers "
J'ai essayé de télécharger www.cijoint.fr etc...directement dans le dossier concerné,ainsi que la macro
évennementielle que tu m'as indiquée,mais quand je veux exécuter: Message d'erreur suivant:
"paramètre de tri incorrect".
J'ai inversé le sens du tri,et obtenu la même réponse !
J'ai demandé autour de moi de l'aide,sans succès,car,dès que l'on parle de MACRO,c'est comme si on
semait la panique dans la basse-cour !
Je suis peut-être trop ambitieux pour un débutant ,je me tourne à nouveau vers toi, as tu des réponses ?
Encore merçi.

Bremic83
gbinforme 14538 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 16 janvier 2018 Dernière intervention - 17 mai 2009 à 18:25
0
Utile
2
bonjour

quand je veux exécuter: Message d'erreur suivant:
"paramètre de tri incorrect".


Tu n'as pas dû lire totalement le message d'erreur car il manque le mot important du message.

Si tu en es arrivé là, c'est très bien car tu as installé ta macro complémentaire et il ne manque qu'une correction aux paramètres : ce devrait être simple.

Si tu pouvais faire un copier/coller de la macro de ton classeur, je pourrais d'aider plus facilement.

Je suis peut-être trop ambitieux pour un débutant

Sûrement pas car si tu n'avais pas aussi été un peu ambitieux pour marcher tu serais toujours assis : il faut bien se lancer et utiliser les outils disponibles surtout lorsqu'ils facilitent la tache.
Voiçi la copie de la macro évenementielle


' Macro1
' Tri auto
'
' Touche de raccourci du clavier: Ctrl+Maj+M
'Private Sub Worksheet_Change(ByVal Target As Range)
Dim retour
retour = Run("trier", 1, "E", " D")
End Sub

A plus

Bremic83
En effet,j'ai oublié un mot dans le message d'erreur,le voiçi dans son intégralité:

"Paramètre sens de tri incorrect"

Bremic83
gbinforme 14538 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 16 janvier 2018 Dernière intervention - 17 mai 2009 à 21:23
0
Utile
1
bonjour

Dans ton paramètre sens de tri, il y a un espace avant le D et comme la macro attend A ou D...

C'est pas méchant, cela va fonctionner mais il faudrait enlever l'apostrophe devant "private".
J'ai corrigé selon tes instructions,maintenant,le message d'erreur est:
"Erreur de compilation Sub End attendu"
Or Sub End figure bien à la fin de la macro,et je ne sais pas quoi faire !
Bonsoir,demain,il fera jour

Bremic83
gbinforme 14538 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 16 janvier 2018 Dernière intervention - 18 mai 2009 à 08:40
0
Utile
2
bonjour

Dans la feuille VBA que tu veux trier, tu ne dois avoir que ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
     Dim retour
     retour = Run("trier", 1, "E", "D")
End Sub 

J'ai l'impression que tu as mis ton code dans un module au milieu d'une autre macro.
Bonjour,
J'ai tout supprimé,puis tout recommencé l'enregistrement.
Je me suis retrouvé avec le même message d'erreur au sujet de "End Sub"
Décourageant !
A plus !

Bremic83
Bonsoir,
Je dois avoir un don pour faire apparaitre les fenêtres d'erreur,après avoir tout repris à zéro,j'ai voulu faire une pause,et enregistrer ce que j'avais déjà préparé.
Voiçi la réponse:
"Les fonctions suivantes ne peuvent pas être enregistrées dans les classeurs sans macro
.Projet V B
et je suis invité à cliquer sur "non"et sélectionner un type de fichier prenant en compte les macros,dans la liste type de fichiers"
Je n'ai aucune idée de ce que celà veut dire !
Peux tu m'éclairer ?
(Je n'ose plus toucher à ce fichier,de peur de tout effacer de mon travail de la journée !)

Bremic83
0
Utile
OK tu es mon sauveur,MERCI

A plus.

Bremic83
StDark 13 Messages postés mercredi 8 juillet 2009Date d'inscription 29 juillet 2009 Dernière intervention - 10 juil. 2009 à 19:37
0
Utile
Bonjour,

Je reviens sur le tri automatique dans Excel 2007.

Cela fonctionne bien, toutefois le problème que je rencontre est que je ne veux trier une copie de mon tableau d'origine. Mon tableau à trier contient donc les références aux cellules où sont saisies les données, et là la macro ne fonctionne plus.

Exemple :

Valeurs saisies en A1:A30
Cellules G1:G30 égale la plage A1:30 et je veux trier la plage G1:G30

La seule solution que j'entrevois serait de rajouter au début de cette macro, un copier/coller des valeurs de ma colonne A en colonne G, mais je ne sais pas le faire en VBA.

Après il y a peut-être une meilleure solution ?
gbinforme 14538 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 16 janvier 2018 Dernière intervention - 10 juil. 2009 à 22:33
0
Utile
bonjour

Tu ne peux pas trier des cellules qui font références à une autre plage mais tu peux effectivement faire une copie puis ensuite tu peux trier sans souci et tu fait la copie très simplement avec ce code :
    Range("A1:A30").Copy Range("G1")
StDark 13 Messages postés mercredi 8 juillet 2009Date d'inscription 29 juillet 2009 Dernière intervention - 11 juil. 2009 à 05:07
0
Utile
Merci beaucoup, toutefois si je peux profiter de tes compétences, quel serait le code à mettre dans ma feuille VBA pour que la copie ne se fasse qu'au changement d'onglet car je l'ai mis dans la macro qui retrie ma liste à chaque modification de cellule, mais du coup le programme tourne en rond ?
gbinforme 14538 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 16 janvier 2018 Dernière intervention - 11 juil. 2009 à 12:01
0
Utile
bonjour

Il faut le mettre dans worksheet_activate la macro événementielle.
StDark 13 Messages postés mercredi 8 juillet 2009Date d'inscription 29 juillet 2009 Dernière intervention - 13 juil. 2009 à 11:14
0
Utile
Bonjour,

Merci pour ces renseignements, je go tester.

++
0
Utile
BONSOIR
j'ai besoin d'une aide sur un tri automatique c urgent
alors je vous explique
j'ai 3 colonnes sur mon tableau
col1: nom
col2: prenom
col3: date et heure de naissance jj/Mm/aaaa hh:mm
je veux trier mes lignes selon la col3 par ordre croissant je sais y ala commande tri mais je veux qu'a chaque fois que j'insere une nouvelle ligne il se reactualise automatiquement
qq1 a une piste je bloque merci à vous
Tri automatique sur Excel - page 2