Excel 2003. Affichez les résultats d'un tri dans un autre onglet
Fermé
Mélodiese
Messages postés
17
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2020
-
11 nov. 2014 à 01:43
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 18 nov. 2014 à 18:53
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 18 nov. 2014 à 18:53
A voir également:
- Excel 2003. Affichez les résultats d'un tri dans un autre onglet
- Liste déroulante excel - Guide
- Rouvrir un onglet fermé - Guide
- Tri excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
13 réponses
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
15 nov. 2014 à 13:58
15 nov. 2014 à 13:58
Bonjour,
Une proposition avec tri par liste personnelle, compatible 2003.
Je n'ai pas bien compris l'intérêt d'une feuille qui doublonne toutes les données.
Donc sur la même feuille un bouton bascule pour afficher trié, ou dans l'ordre des saisies.
A1:A5 sont sensées être vides (sinon adapter la macro)
I peut être masquée
https://www.cjoint.com/?DKpn6SCC9SR
eric
Une proposition avec tri par liste personnelle, compatible 2003.
Je n'ai pas bien compris l'intérêt d'une feuille qui doublonne toutes les données.
Donc sur la même feuille un bouton bascule pour afficher trié, ou dans l'ordre des saisies.
A1:A5 sont sensées être vides (sinon adapter la macro)
I peut être masquée
https://www.cjoint.com/?DKpn6SCC9SR
eric
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
18 nov. 2014 à 18:53
18 nov. 2014 à 18:53
Bon, j'ai fait avec les 3 premières catégories, à compléter dans le code à 2 endroits :
Array("Première", "Deuxième", "Troisième")
Clic-droit sur le nom d'onglet et choisir 'visualiser le code'
J'ai aussi ajouté : la cellule active suit le tri pour rester sur la ligne en cours.
Rappel : A1:A5 doivent être vides sinon adapter le code
https://www.cjoint.com/c/DKss6QmI6S0
eric
Array("Première", "Deuxième", "Troisième")
Clic-droit sur le nom d'onglet et choisir 'visualiser le code'
J'ai aussi ajouté : la cellule active suit le tri pour rester sur la ligne en cours.
Rappel : A1:A5 doivent être vides sinon adapter le code
https://www.cjoint.com/c/DKss6QmI6S0
Option Explicit Sub tri1() Dim numListe As Long, savIndex As Long, savCell As Range, c As Range savIndex = Cells(ActiveCell.Row, "I") Set savCell = ActiveCell ' tri PODC On Error Resume Next ' récup n° de liste personnelle numListe = Application.GetCustomListNum(Array("P", "O", "D", "C")) On Error GoTo 0 If numListe = 0 Then ' liste personnelle n'existe pas, on l'ajoute Application.AddCustomList ListArray:=Array("P", "O", "D", "C") ' récup n° de liste numListe = Application.CustomListCount End If Range("A6:I" & Cells(Rows.Count, "A").End(xlUp).Row).Sort Key1:=Range("F7"), Header:=xlYes, OrderCustom:=numListe + 1 'tri ss-cat, type Range("A6:I" & Cells(Rows.Count, "A").End(xlUp).Row).Sort Key1:=Range("D7"), Key2:=Range("H7"), _ Header:=xlGuess, DataOption2:=xlSortTextAsNumbers ' tri Catégorie On Error Resume Next ' récup n° de liste personnelle numListe = Application.GetCustomListNum(Array("Première", "Deuxième", "Troisième")) On Error GoTo 0 If numListe = 0 Then ' liste personnelle n'existe pas, on l'ajoute Application.AddCustomList ListArray:=Array("Première", "Deuxième", "Troisième") ' récup n° de liste numListe = Application.CustomListCount End If Range("A6:I" & Cells(Rows.Count, "A").End(xlUp).Row).Sort Key1:=Range("C7"), Header:=xlYes, OrderCustom:=numListe + 1 ' select ancienne cellule active If savCell.Row > 6 Then Set c = [I:I].Find(savIndex, LookIn:=xlValues, lookat:=xlWhole) If c Is Nothing Then savCell.Select Else Cells(c.Row, savCell.Column).Select End If Else savCell.Select End If End Sub Sub tri0() Dim savIndex As Long, savCell As Range, c As Range savIndex = Cells(ActiveCell.Row, "I") Set savCell = ActiveCell Range("A6:I" & Cells(Rows.Count, "A").End(xlUp).Row).Sort Key1:=Range("I7"), Header:=xlGuess ' select ancienne cellule active If savCell.Row > 6 Then Set c = [I:I].Find(savIndex, LookIn:=xlValues, lookat:=xlWhole) If c Is Nothing Then savCell.Select Else Cells(c.Row, savCell.Column).Select End If Else savCell.Select End If End Sub Private Sub ToggleButton1_Click() With ToggleButton1 If ToggleButton1 Then .Caption = "Trié" Else .Caption = "Saisie" If ToggleButton1 Then tri1 Else tri0 End If End With End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row > 6 And Target.Column = 1 And Cells(Target.Row, "I") = "" Then Cells(Target.Row, "I") = Application.CountA([A:A]) - 1 End If End Sub
eric
oz@work
Messages postés
127
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
20 janvier 2015
3
11 nov. 2014 à 02:01
11 nov. 2014 à 02:01
Bonsoir Melodiese,
Pourrais-tu nous envoyer ton classeur avec un exemple de réponse souhaitée via cjoint.com?
Merci.
Pour répondre brièvement à ta question, un tri ne se fait pas automatiquement sur Excel (à mon avis).Il doit se faire soit via la commande de tri, soit via une macro.J'ai dû justement programmer un tri pour des utilisateurs "novices" sur Excel et tout se fait uniquement avec un bouton associé à une macro.Ils en sont ravis!
On attend donc ton exemple pour commencer à t'aider.
Bonne soirée.
Pourrais-tu nous envoyer ton classeur avec un exemple de réponse souhaitée via cjoint.com?
Merci.
Pour répondre brièvement à ta question, un tri ne se fait pas automatiquement sur Excel (à mon avis).Il doit se faire soit via la commande de tri, soit via une macro.J'ai dû justement programmer un tri pour des utilisateurs "novices" sur Excel et tout se fait uniquement avec un bouton associé à une macro.Ils en sont ravis!
On attend donc ton exemple pour commencer à t'aider.
Bonne soirée.
Mélodiese
Messages postés
17
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2020
12 nov. 2014 à 01:54
12 nov. 2014 à 01:54
Bon, Monsieur Oz, j'espère que vous avez un peu de patience :) Je viens de joindre mon fichier via le site cjoint.com, mais ne sais où il séjourne en ce moment. Il n'est pas revenu sur terre, car je ne le vois pas sur le site. "Il ne faut jamais demandé son chemin à qui ne sait pas s'égarer" Rolland Giguère.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mélodiese
Messages postés
17
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2020
12 nov. 2014 à 01:57
12 nov. 2014 à 01:57
Oups, je viens de recevoir un courriel m'indiquant l'adresse du fichier : https://www.cjoint.com/?3KmbVclLWtx
Y avez-vous accès avec cette adresse?
Y avez-vous accès avec cette adresse?
oz@work
Messages postés
127
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
20 janvier 2015
3
15 nov. 2014 à 01:19
15 nov. 2014 à 01:19
Bonsoir Melodiese,
Nous avons bien accès à ton fichier.
Effectivement, il va falloir créer une macro pour éviter que tes utilisateurs ne fassent le tri eux-mêmes.
Je regarde si je peux t'aider ;)
Au final, est-ce que ça doit te rendre ça >> http://imagik.fr/view-rl/133713 ?
Nous avons bien accès à ton fichier.
Effectivement, il va falloir créer une macro pour éviter que tes utilisateurs ne fassent le tri eux-mêmes.
Je regarde si je peux t'aider ;)
Au final, est-ce que ça doit te rendre ça >> http://imagik.fr/view-rl/133713 ?
oz@work
Messages postés
127
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
20 janvier 2015
3
15 nov. 2014 à 02:05
15 nov. 2014 à 02:05
Si oui,
Comme j'utilise Excel 2010, je ne sais pas si mon fichier sera compatible.
Ce qu'il faut faire, c'est recopier le "tableau de compilation" dans la feuille "classement d'items équivalents" selon les données souhaitées.
J'avoue ne pas être totalement au point niveau programmation de macro donc je "triche" un peu :D
> Feuille 'Classement d'items équivalents'
En A2 : =SI('Tableau de compilation '!$A8=0;"";'Tableau de compilation '!$A8)
En B2: =SI('Tableau de compilation '!$B8=0;"";'Tableau de compilation '!$B8)
En C2: =SI('Tableau de compilation '!$C8=0;"";'Tableau de compilation '!$C8)
En D2: =SI('Tableau de compilation '!$D8=0;"";'Tableau de compilation '!$D8)
En E2: =SI('Tableau de compilation '!$F8=0;"";'Tableau de compilation '!$F8)
Puis copier-coller la portion [A2:E2] dans le reste des colonnes (jusqu'à la ligne que tu souhaites).
Ensuite, il faut créer la fameuse macro de tri, que j'appelle TRI (pourquoi faire compliqué!)
Dans cette macro, on va sélectionner les colonnes A,B,C,D,et E puis les trier selon 3 critères dans l'ordre:
1- selon la catégorie
2- selon la sous-catégorie
3- selon le PODC
Ce qui nous donne:
Sub TRI()
'
' TRI Macro
'
'
ActiveWorkbook.Worksheets("Classement d'items équivalents").Sort.SortFields. _
Clear
Columns("A:E").Select
ActiveWorkbook.Worksheets("Classement d'items équivalents").Sort.SortFields. _
Add Key:=Range("C:C"), SortOn:=xlSortOnValues, Order:=xlAscending, _
CustomOrder:="Première,Deuxième,Troisième", DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Classement d'items équivalents").Sort.SortFields. _
Add Key:=Range("D:D"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Classement d'items équivalents").Sort.SortFields. _
Add Key:=Range("E:E"), SortOn:=xlSortOnValues, Order:=xlAscending, _
CustomOrder:="P,O,D,C", DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Classement d'items équivalents").Sort
.SetRange Columns("A:E")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Pour finir, il suffit d'associer cette macro à un bouton situé sur le coté du tableau et le tour est joué ;)
Comme j'utilise Excel 2010, je ne sais pas si mon fichier sera compatible.
Ce qu'il faut faire, c'est recopier le "tableau de compilation" dans la feuille "classement d'items équivalents" selon les données souhaitées.
J'avoue ne pas être totalement au point niveau programmation de macro donc je "triche" un peu :D
> Feuille 'Classement d'items équivalents'
En A2 : =SI('Tableau de compilation '!$A8=0;"";'Tableau de compilation '!$A8)
En B2: =SI('Tableau de compilation '!$B8=0;"";'Tableau de compilation '!$B8)
En C2: =SI('Tableau de compilation '!$C8=0;"";'Tableau de compilation '!$C8)
En D2: =SI('Tableau de compilation '!$D8=0;"";'Tableau de compilation '!$D8)
En E2: =SI('Tableau de compilation '!$F8=0;"";'Tableau de compilation '!$F8)
Puis copier-coller la portion [A2:E2] dans le reste des colonnes (jusqu'à la ligne que tu souhaites).
Ensuite, il faut créer la fameuse macro de tri, que j'appelle TRI (pourquoi faire compliqué!)
Dans cette macro, on va sélectionner les colonnes A,B,C,D,et E puis les trier selon 3 critères dans l'ordre:
1- selon la catégorie
2- selon la sous-catégorie
3- selon le PODC
Ce qui nous donne:
Sub TRI()
'
' TRI Macro
'
'
ActiveWorkbook.Worksheets("Classement d'items équivalents").Sort.SortFields. _
Clear
Columns("A:E").Select
ActiveWorkbook.Worksheets("Classement d'items équivalents").Sort.SortFields. _
Add Key:=Range("C:C"), SortOn:=xlSortOnValues, Order:=xlAscending, _
CustomOrder:="Première,Deuxième,Troisième", DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Classement d'items équivalents").Sort.SortFields. _
Add Key:=Range("D:D"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Classement d'items équivalents").Sort.SortFields. _
Add Key:=Range("E:E"), SortOn:=xlSortOnValues, Order:=xlAscending, _
CustomOrder:="P,O,D,C", DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Classement d'items équivalents").Sort
.SetRange Columns("A:E")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Pour finir, il suffit d'associer cette macro à un bouton situé sur le coté du tableau et le tour est joué ;)
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
949
Modifié par Mytå le 15/11/2014 à 03:02
Modifié par Mytå le 15/11/2014 à 03:02
salut le Forum
Déjà à première vue
SortOn:=xlSortOnValues
CustomOrder:="Première,Deuxième,Troisième" et CustomOrder:="P,O,D,C"
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
Instructions non reconnu par Excel 2003.
Mytå
Déjà à première vue
SortOn:=xlSortOnValues
CustomOrder:="Première,Deuxième,Troisième" et CustomOrder:="P,O,D,C"
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
Instructions non reconnu par Excel 2003.
Mytå
oz@work
Messages postés
127
Date d'inscription
dimanche 2 novembre 2014
Statut
Membre
Dernière intervention
20 janvier 2015
3
15 nov. 2014 à 23:20
15 nov. 2014 à 23:20
arf!C'est la partie qui trie en fonction de la catégorie.
Je me doutais bien que ça ne fonctionnerait pas.
Y-a-t-il un traducteur Excel 2010>2003 parmi nous?
Je me doutais bien que ça ne fonctionnerait pas.
Y-a-t-il un traducteur Excel 2010>2003 parmi nous?
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
949
15 nov. 2014 à 23:31
15 nov. 2014 à 23:31
Re le Forum
Eric à déjà fourni une version: Voir Lien#7
Mytå
Eric à déjà fourni une version: Voir Lien#7
Mytå
Mélodiese
Messages postés
17
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2020
15 nov. 2014 à 23:37
15 nov. 2014 à 23:37
Bonjour, je suis impressionnée par votre travail et votre dévouement. Je m'y perds toutefois complètement avec les macros. Oz, c'est bien le résultat que j'attends, comme tu me le demandais dans le premier message, mais je vois que ma version cause des difficultés supplémentaires. Cela semble être tout un défi, et je commence à me sentir gênée par ma demande. Je ne peux même pas vous aider, sauf pour répondre à vos questions :)
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
16 nov. 2014 à 01:25
16 nov. 2014 à 01:25
Mélodiese, regarde plus bas.
eric
eric
Mélodiese
Messages postés
17
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2020
16 nov. 2014 à 23:55
16 nov. 2014 à 23:55
Merci Éric pour ton précieux travail. J'ai manipulé le ficher avec les options de tri qu'il offre, mais je ne parviens malheureusement pas à afficher, par exemple, les catégories d'items par ordre logique plutôt qu'alphabétique. Aussi, il semble que cette option ne me permette pas d'avoir une vue d'ensemble de tous les items classés dans un ordre défini, mais préalablement saisis de manière aléatoire. Les utilisateurs de ce fichiers ne connaissent pas beaucoup Excel et comme nous n'avons aucun soutien informatique en cette matière, je désire leur permettre d'avoir une vision de tous les items, qui correspondent aux critères définis : les mêmes catégories, et parmi celles-ci les mêmes sous-catégories. Pour les items qui possèdent un S-F correspondant, soit un P, un O, un D, ou un C, j'aimerais qu'ils soient classés selon cet ordre. Il se peut que ce que je demande ne soit pas possible, mais j'ose encore solliciter votre précieuse aide, étant novice dans le domaine. Mais sachez, qu'à l'impossible, nul n'est tenu :)
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
949
17 nov. 2014 à 00:00
17 nov. 2014 à 00:00
Re le Forum
Tu veux ceci comme classement : http://imagik.fr/view-rl/133713
Mytå
Tu veux ceci comme classement : http://imagik.fr/view-rl/133713
Mytå
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
17 nov. 2014 à 00:28
17 nov. 2014 à 00:28
Re,
tu n'as demandé un tri spécial que pour PODC, les autres ont un tri alpha.
Si d'autres champs ont une particularité le préciser en détail, champ par champ. On ne peut pas deviner.
Tu parles de tris, pas de filtres, on est bien d'accord ?
eric
tu n'as demandé un tri spécial que pour PODC, les autres ont un tri alpha.
Si d'autres champs ont une particularité le préciser en détail, champ par champ. On ne peut pas deviner.
Tu parles de tris, pas de filtres, on est bien d'accord ?
eric
Mélodiese
Messages postés
17
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2020
17 nov. 2014 à 14:02
17 nov. 2014 à 14:02
Je suis désolée si mon message n'était pas assez clair. J'avais écrit ceci au départ :
Au fur et à mesure que les items sont saisies, avec leurs caractéristiques propres, et non triés au préalable, j'aimerais, entre autres, que les items classés dans la même catégorie, sous-catégorie et type soient présentés ensemble et affiche le numéro des items qui répondent à ses conditions.
Donc, affichage des mêmes catégories, puis des mêmes sous-catégories dans ces catégories, puis, leur type PODC correspondant et trié aussi, si cela est possible. Sinon, ce sera déjà beaucoup.
Je n'ai pas encore utilisé de filtres, et je ne sais pas si c'est la façon de faire pour programmer cet affichage. L'idée de départ est de présenter cet affichage sans que les utilisateurs aient à manipuler l'information.
Merci Éric.
Au fur et à mesure que les items sont saisies, avec leurs caractéristiques propres, et non triés au préalable, j'aimerais, entre autres, que les items classés dans la même catégorie, sous-catégorie et type soient présentés ensemble et affiche le numéro des items qui répondent à ses conditions.
Donc, affichage des mêmes catégories, puis des mêmes sous-catégories dans ces catégories, puis, leur type PODC correspondant et trié aussi, si cela est possible. Sinon, ce sera déjà beaucoup.
Je n'ai pas encore utilisé de filtres, et je ne sais pas si c'est la façon de faire pour programmer cet affichage. L'idée de départ est de présenter cet affichage sans que les utilisateurs aient à manipuler l'information.
Merci Éric.
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
17 nov. 2014 à 15:38
17 nov. 2014 à 15:38
Bonjour,
Et que manque-t-il au fichier que je t'ai fourni ?
Tu appuies sur le bouton, c'est trié. Tu ré-appuis dessus c'est dans l'ordre des saisies.
Tu redis la même chose mais tu n'expliques pas plus ce qui ne va pas.
eric
Et que manque-t-il au fichier que je t'ai fourni ?
Tu appuies sur le bouton, c'est trié. Tu ré-appuis dessus c'est dans l'ordre des saisies.
Tu redis la même chose mais tu n'expliques pas plus ce qui ne va pas.
eric
Mélodiese
Messages postés
17
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
15 février 2020
18 nov. 2014 à 00:54
18 nov. 2014 à 00:54
Bonjour,
Je viens de constater que la configuration de mon système m'empêchait de faire fonctionner ton bouton. Maintenant que cela est réglé, j'ai pu apprécier ton travail. Cela rend les choses vraiment plus faciles. Le dernier rêve que j'aimerais voir réalisé est que les catégories (il y en a environ 10 dans mon fichier original) soient classées selon l'ordre numérique (1, 2, 3... 10.). Est-ce que tu fais tout cela avec une macro? Je n'arrive pas à voir tes commandes. Tu pourrais m'indiquer où elles se trouvent pour que je tente de comprendre ta magie?
Je viens de constater que la configuration de mon système m'empêchait de faire fonctionner ton bouton. Maintenant que cela est réglé, j'ai pu apprécier ton travail. Cela rend les choses vraiment plus faciles. Le dernier rêve que j'aimerais voir réalisé est que les catégories (il y en a environ 10 dans mon fichier original) soient classées selon l'ordre numérique (1, 2, 3... 10.). Est-ce que tu fais tout cela avec une macro? Je n'arrive pas à voir tes commandes. Tu pourrais m'indiquer où elles se trouvent pour que je tente de comprendre ta magie?