Trier des listes dans Excel
Résolu/Fermé
plastickman
Messages postés
64
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
8 février 2012
-
17 déc. 2007 à 21:18
gbinforme Messages postés 14939 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 19 déc. 2007 à 21:34
gbinforme Messages postés 14939 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 19 déc. 2007 à 21:34
A voir également:
- Trier des listes dans Excel
- Liste déroulante excel - Guide
- Formule excel - Guide
- Déplacer une colonne excel - Guide
- Aller à la ligne excel - Guide
- Trier par ordre alphabétique excel - Guide
7 réponses
la plage de données n'est pas immense moi j'effacerai les cellules vides manuellement et pour trier par ordre alphabetique, il suffit de selectionner les cellules et de cliquer sur "données" "trier"...
plastickman
Messages postés
64
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
8 février 2012
6
17 déc. 2007 à 21:52
17 déc. 2007 à 21:52
Merci pour ta solution mais ça fait tout de même 132 cellules à trier, réparties en trois listes, et j'en ai plusieurs à faire par jours.
Je pense qu'une macro serait la bien venue ;-)
Je pense qu'une macro serait la bien venue ;-)
gbinforme
Messages postés
14939
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 656
18 déc. 2007 à 10:01
18 déc. 2007 à 10:01
bonjour
Je voudrais tout d'abord soit masquer soit effacer les cellules vides contenues dans ces listes,
Le tri de la liste les met en fin de liste.
puis les classer par ordre alphabétique afin d'en supprimer les doublons.
Je pense qu'une macro serait la bien venue ;-)
Essaie de mettre celle-ci dans "thisworkbook"
où j'ai utilisé tes paramètres qui peuvent bien sûr être modifiés A4:A48, A50:A94, A96:A140
Cette macro s"exécute à l'ouverture du classeur et donc tes listes sont toujours triées et sans doubles.
Je voudrais tout d'abord soit masquer soit effacer les cellules vides contenues dans ces listes,
Le tri de la liste les met en fin de liste.
puis les classer par ordre alphabétique afin d'en supprimer les doublons.
Je pense qu'une macro serait la bien venue ;-)
Essaie de mettre celle-ci dans "thisworkbook"
où j'ai utilisé tes paramètres qui peuvent bien sûr être modifiés A4:A48, A50:A94, A96:A140
Private Sub Workbook_Open()
Call Tri_Efface_doubles([A4:A48])
Call Tri_Efface_doubles([A50:A94])
Call Tri_Efface_doubles([A96:A140])
End Sub
Sub Tri_Efface_doubles(plage) ' As Range)
Dim lig As Double ' ligne
Dim MJE As Boolean ' mise à jour écran
Dim RCL As Boolean ' type calcul
On Error GoTo Fin ' Sauvegarde des paramètres actuels d'affichage et de recalcul
If Application.ScreenUpdating Then MJE = True ' mise à jour écran
If Application.Calculation = xlCalculationAutomatic Then RCL = True ' type calcul
Application.Calculation = xlCalculationManual ' type calcul
Application.ScreenUpdating = False ' mise à jour écran
'tri plage initiale
plage.Sort Key1:=Cells(plage.Row, plage.Column), Order1:=xlAscending, Header:=xlNo _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
For lig = plage.Row To plage.Count + plage.Row ' boucle sur plage
If Cells(lig + 1, plage.Column) = Cells(lig, plage.Column) Then
Cells(lig, plage.Column) = "" 'double effacé
End If
Next lig 'tri plage sans doubles
plage.Sort Key1:=Cells(plage.Row, plage.Column), Order1:=xlAscending, Header:=xlNo _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Fin: ' paramètres initiaux
If MJE Then Application.ScreenUpdating = True
If RCL Then Application.Calculation = xlCalculationAutomatic
End Sub
Cette macro s"exécute à l'ouverture du classeur et donc tes listes sont toujours triées et sans doubles.
plastickman
Messages postés
64
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
8 février 2012
6
18 déc. 2007 à 20:54
18 déc. 2007 à 20:54
Merci beaucoup,
En effet, j'étais loin du compte...
Pour être franc je ne comprends pas tout...
La notion de "thisworkbook" par exemple , je ne vois pas vraiment ce que cela veut dire.
En fait, j'avais fais un code que je lançais à partir d'un bouton sur une autre feuille , j'aimerais garder ce fonctionnement et je n'arrive pas remplacer mon code par le tien. Qu'est ce qu'il faudrait changer pour que ça fonctionne ?
En effet, j'étais loin du compte...
Pour être franc je ne comprends pas tout...
La notion de "thisworkbook" par exemple , je ne vois pas vraiment ce que cela veut dire.
En fait, j'avais fais un code que je lançais à partir d'un bouton sur une autre feuille , j'aimerais garder ce fonctionnement et je n'arrive pas remplacer mon code par le tien. Qu'est ce qu'il faudrait changer pour que ça fonctionne ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gbinforme
Messages postés
14939
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 656
18 déc. 2007 à 21:25
18 déc. 2007 à 21:25
bonjour
La notion de "thisworkbook" par exemple
Cette feuille VBA est destinée aux procédures qui ont un rapport avec le classeur. Pour un peu plus de détails
une petite explication
En fait je t'ai fait une procédure qui fonctionne n'importe en fonction du paramètre "plage" que tu donnes.
Donc dans la procédure de ton bouton tu places ces trois appels :
Puis tu copies la procédure Sub Tri_Efface_doubles(plage) jusqu'à "End Sub" dans un module et cela fonctionne.
La notion de "thisworkbook" par exemple
Cette feuille VBA est destinée aux procédures qui ont un rapport avec le classeur. Pour un peu plus de détails
une petite explication
En fait je t'ai fait une procédure qui fonctionne n'importe en fonction du paramètre "plage" que tu donnes.
Donc dans la procédure de ton bouton tu places ces trois appels :
Call Tri_Efface_doubles([A4:A48])
Call Tri_Efface_doubles([A50:A94])
Call Tri_Efface_doubles([A96:A140])
Puis tu copies la procédure Sub Tri_Efface_doubles(plage) jusqu'à "End Sub" dans un module et cela fonctionne.
plastickman
Messages postés
64
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
8 février 2012
6
19 déc. 2007 à 21:21
19 déc. 2007 à 21:21
Ca marche parfaitement, et en plus je comprends mieux grâce au lien que tu m'as donné.
Un très grand MERCI pour tout.
A+
jp
Un très grand MERCI pour tout.
A+
jp
gbinforme
Messages postés
14939
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 656
19 déc. 2007 à 21:34
19 déc. 2007 à 21:34
bonjour
Merci de ton message et très heureux de t'avoir aidé.
Merci de ton message et très heureux de t'avoir aidé.