VBA trier par ordre alphabétique
Résolu
GustavoSRP
Messages postés
8
Statut
Membre
-
GustavoSRP Messages postés 8 Statut Membre -
GustavoSRP Messages postés 8 Statut Membre -
Bonjour à tous,
Je veux trier par ordre alphabétique les données dans la colonne B mais seulement à partir de la cellule B3. Ensuite, toutes les données des colonnes adjacentes (c, d, e, f, etc.) doivent suivre le triage en respectant la ligne correspondante.
La colonne A ne doit pas être affectée par le triage.
Comment faire?
Voici ce que j'ai tenté mais ça ne fonctionne pas car le triage se fait à partir de la cellule B2 et il affecte aussi à la colonne A.
Des suggestions?
Merci d'avance à tout le monde
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
Je veux trier par ordre alphabétique les données dans la colonne B mais seulement à partir de la cellule B3. Ensuite, toutes les données des colonnes adjacentes (c, d, e, f, etc.) doivent suivre le triage en respectant la ligne correspondante.
La colonne A ne doit pas être affectée par le triage.
Comment faire?
Voici ce que j'ai tenté mais ça ne fonctionne pas car le triage se fait à partir de la cellule B2 et il affecte aussi à la colonne A.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Range("B1").Sort Key1:=Range("B3"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
End Sub
Des suggestions?
Merci d'avance à tout le monde
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
3 réponses
-
Bonjour,
Avec enregistreur de macro (ai seulement modifie B1 par B2), a adapter:
Sub Macro2() ' ' Macro2 Macro ' ' Columns("B:D").Select ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("B2:B21") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Feuil1").Sort .SetRange Range("B2:D21") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub -
Bonjour f894009,
Pour activer ton code j'ai besoin d'ajouter un bouton je suppose?
Mon code je l'ai intégré directement dans la feuille, comme â il s'active automatiquement quand j'ajoute quelque chose dans la colonne B. Pas besoin de passer par un bouton.
Est-ce que je peux aussi intégrer ton code directement dans la feuille?
Merci pour ton aide.-
Bonjour,
besoin d'ajouter un bouton je suppose
Non, il suffit de modifier le code dans Worksheet_Change pour appeler la procédure ou mettre ce code dans votre procedure avec les modifier ci-dessous
Est-ce que je peux aussi intégrer ton code
Non, il faut faire un recherche de la dernière cellule non vide colonne B pour les deuxRange("B2:B21")
qui devient:Range("B2:B" & derlig) derligétant la ligne dernière cellule non vide colonne B
quand j'ajoute quelque chose dans la colonne B
Il faut modifier votre code pour ne tenir compte que des modifs des cellules colonne B vu qu'actuellement peut importe la cellule de quelque colonne que ce soit vous faite executer le code
-
-