Trier des cellules avec formules
Résolu
pinpon59
Messages postés
306
Date d'inscription
Statut
Membre
Dernière intervention
-
pinpon59 Messages postés 306 Date d'inscription Statut Membre Dernière intervention -
pinpon59 Messages postés 306 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je n'arrive pas à trier par ordre alphabétique des cellules avec une formule.
Je m'explique :
ex : dans la colonne B j'ai 5 noms, dans la D j'ai 3 noms, et dans la F j'ai 9 noms (ces noms ont été rentrés avec une validation de données)
Je voudrais copier ces noms (donc au total 13) dans la colonne J, les trier par ordre alphabétique, et enlever les doublons( tout ça si possible en automatique) avec prise en compte s'il y a des changements dans les colonnes B, D et J, c'est a dire que si je change un nom dans l'une des colonnes B, D ou J, j'aimerai que le tri et la suppression des doublons se re-fasse s'il y a besoin.
Je joint le lien du fichier.
https://www.cjoint.com/c/CLmtdHtm3EZ
Je n'arrive pas à trier par ordre alphabétique des cellules avec une formule.
Je m'explique :
ex : dans la colonne B j'ai 5 noms, dans la D j'ai 3 noms, et dans la F j'ai 9 noms (ces noms ont été rentrés avec une validation de données)
Je voudrais copier ces noms (donc au total 13) dans la colonne J, les trier par ordre alphabétique, et enlever les doublons( tout ça si possible en automatique) avec prise en compte s'il y a des changements dans les colonnes B, D et J, c'est a dire que si je change un nom dans l'une des colonnes B, D ou J, j'aimerai que le tri et la suppression des doublons se re-fasse s'il y a besoin.
Je joint le lien du fichier.
https://www.cjoint.com/c/CLmtdHtm3EZ
A voir également:
- Trier des cellules avec formules
- Excel trier par ordre croissant chiffre - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Formules - Télécharger - Études & Formations
- Verrouiller des cellules excel - Guide
- Logiciel pour trier les photos automatiquement - Guide
3 réponses
Bonsoir
Il faut faire un copier-coller special uniquement des valeurs pour ensuite pouvoir les trier et supprimer les doublons
J'ai automatisé cette copie et la suite par une macro à déclencher avec le bouton sur la feuille
https://www.cjoint.com/?0Lmu2S0H6FL
Cdlmnt
Il faut faire un copier-coller special uniquement des valeurs pour ensuite pouvoir les trier et supprimer les doublons
J'ai automatisé cette copie et la suite par une macro à déclencher avec le bouton sur la feuille
https://www.cjoint.com/?0Lmu2S0H6FL
Cdlmnt
Bonjour,
c'est exactement ce que je voulais. Par contre est il possible de triée et de supprimer les doublons avec la liste actuelle (sans refaire une liste à coté) et j'aimerai savoir comment faire pour copier la macro dans d'autres onglet.
Encore merci pour votre aide. Je me doutais qu'il fallait une macro, mais je ne sais pas du tout comment en faire une.
Cordialement.
c'est exactement ce que je voulais. Par contre est il possible de triée et de supprimer les doublons avec la liste actuelle (sans refaire une liste à coté) et j'aimerai savoir comment faire pour copier la macro dans d'autres onglet.
Encore merci pour votre aide. Je me doutais qu'il fallait une macro, mais je ne sais pas du tout comment en faire une.
Cordialement.
Bonjour
La liste à côté est obligatoire car les cellules de la colonne J contiennent les formules de références à d''autres cellules (ce qui occasionnait l'erreur REF lors du tri)
Pour adapter la macro à d'autres onglets
1) Il faut copier la macro et donner un nouveau nom à la Sub (par exemple tri2 au lieu de trietdoublons) pour chaque onglet différent et modifier les references d'adresse de feuille et de cellules qui ne seront pas les même (celles que j'ai mis en gras dans la macro)
Sub trietdoublons()
'
Range("J2:J14").Select
Selection.Copy
Range("K2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("vendredi 19 à 23").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("vendredi 19 à 23").Sort.SortFields.Add Key:=Range( _
"K2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("vendredi 19 à 23").Sort
.SetRange Range("K2:K14")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Range("$K$2:$K$14").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub
2) Mettre un bouton dans l'onglet et lui affecter la macro correspondante (clic droit sur le bouton puis Visualiser le code et dans la Private sub indiquer le nom de la macro
ex :
Private Sub CommandButton1_Click()
tri2
End Sub
Cdlmnt
La liste à côté est obligatoire car les cellules de la colonne J contiennent les formules de références à d''autres cellules (ce qui occasionnait l'erreur REF lors du tri)
Pour adapter la macro à d'autres onglets
1) Il faut copier la macro et donner un nouveau nom à la Sub (par exemple tri2 au lieu de trietdoublons) pour chaque onglet différent et modifier les references d'adresse de feuille et de cellules qui ne seront pas les même (celles que j'ai mis en gras dans la macro)
Sub trietdoublons()
'
Range("J2:J14").Select
Selection.Copy
Range("K2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("vendredi 19 à 23").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("vendredi 19 à 23").Sort.SortFields.Add Key:=Range( _
"K2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("vendredi 19 à 23").Sort
.SetRange Range("K2:K14")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Range("$K$2:$K$14").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub
2) Mettre un bouton dans l'onglet et lui affecter la macro correspondante (clic droit sur le bouton puis Visualiser le code et dans la Private sub indiquer le nom de la macro
ex :
Private Sub CommandButton1_Click()
tri2
End Sub
Cdlmnt
bonjour
Tu peux faire un copier coller à partir de mon précédent message
Alt +F11 pour ouvrir l'éditeur Visual Basic
Puis Insertion Module
et tu colles la macro dans la partie droite blanche de la fenetre
ensuite tu modifies les references de feuille dans les 3 lignes où elles se trouvent et éventuellement toutes les références de cellules si ce ne sont pas les mêmes
et tu changes le nom de la macro sur la 1ere ligne
enfin tu fermes l'éditeur et tu selectionnes la feuille où appliquer la macro
pour activer la macro :
soit tu vas dans le menu Developpeur, Macros et tu fais executer ta macro
soit comme j'avais fait tu crées un bouton et tu lui affectes la macro
pour créer le bouton : menu Developpeur, Inserer, Controle active X, Bouton
ensuite clic droit sur le bouton Visualiser le code et entre les 2 lignes Sub et End sub tu mets le nom de la macro puis tu desactives le mode Création
Si le menu Développeur n'apparait pas dans ta barre de menu en haut il faut aller dans Options Excel (à partir du bouton Office en haut à gauche) , Standard et cocher l'option Afficher l'onglet Developpeur
Cdlmnt
Tu peux faire un copier coller à partir de mon précédent message
Alt +F11 pour ouvrir l'éditeur Visual Basic
Puis Insertion Module
et tu colles la macro dans la partie droite blanche de la fenetre
ensuite tu modifies les references de feuille dans les 3 lignes où elles se trouvent et éventuellement toutes les références de cellules si ce ne sont pas les mêmes
et tu changes le nom de la macro sur la 1ere ligne
enfin tu fermes l'éditeur et tu selectionnes la feuille où appliquer la macro
pour activer la macro :
soit tu vas dans le menu Developpeur, Macros et tu fais executer ta macro
soit comme j'avais fait tu crées un bouton et tu lui affectes la macro
pour créer le bouton : menu Developpeur, Inserer, Controle active X, Bouton
ensuite clic droit sur le bouton Visualiser le code et entre les 2 lignes Sub et End sub tu mets le nom de la macro puis tu desactives le mode Création
Si le menu Développeur n'apparait pas dans ta barre de menu en haut il faut aller dans Options Excel (à partir du bouton Office en haut à gauche) , Standard et cocher l'option Afficher l'onglet Developpeur
Cdlmnt