Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Tri automatique Excel VBA

  • Initiateur de la discussion Initiateur de la discussion Antoine_SIG
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

Antoine_SIG

Guest
Bonjour,
Je ne suis pas fort en VB (je débute à peine) et je n'ai pas saisi les quelques explications de sujets similaires. Je pose donc la question :
Dans mon tableau excel :
A2 = GEGE ; B2 = adresse GEGE
A3 = FIFI ; B3 = adresse FIFI
A4 = DEDE ; B4 = adresse DEDE
A5 = COCO ; A5 = adresse COCO
... Ax ; Bx...

Je peux classer ce tableau par ordre alphabétique sur la colonne A. J'obtiens alors :
A2 = COCO ; B2 = adresse COCO
A3 = DEDE ; B3 = adresse DEDE
A4 = FIFI ; B4 = adresse FIFI
A5 = GEGE ; B5 = adresse GEGE
Ax ; Bx

Mais je saisis régulièrement de nouvelles lignes. Par exemple, là, je voudrais ajouter :
A6 = BABA ; B6 = adresse BABA.

Dès que la saisie est effectuée sur la cellule A6, et sans le moindre clic supplémentaire de ma part, je voudrais que Excel réordonne l'ensemble de mes lignes par un tri automatique pour obtenir :
A2 = COCO ; B2 = adresse COCO
A3 = BABA ; B3 = adresse BABA
A4 = DEDE ; B4 = adresse DEDE
A5 = FIFI ; B5 = adresse FIFI
A6 =GEGE ; B6 = adresse GEGE
Ax ; Bx

... Comment qu'c'est-y qu'ça s'fait ?

Merci d'avance !... C'est assez urgent pour moi.
 
Re : Tri automatique Excel VBA

Bonjour Antoine, bonjour le forum,

La macro événementielle ci-dessous est à placé dans le composant Worksheet de l'onglet où tu veux qu'elle agisse (Feuil1(Feuil1) par exemple).

Elle n'agira que losrque tu auras édité le nom et l'adresse.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub 'si le changement n'a pas lieu dans la colonne B, sort de la procédure
If Target.Offset(0, -1).Value = "" Then Exit Sub 'si la colonne A est vide sort de la procédure
'tri
Range("A1").CurrentRegion.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub
 
Re : Tri automatique Excel VBA

Merci pour la réponse, c'est ce que je voulais. Toutefois, je vais avoir 52 feuilles. Pour ne pas copier ce code VB 52 fois, je voudrais l'intégrer dans un module et l'appeler à partir de chaque feuille. Je ne parviens pas à faire cette opération. Peux-tu m'aider ?
Merci d'avance
 
Re : Tri automatique Excel VBA

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  If Target.Column = 1 And Target.Count = 1 Then
    nom = Target
    [A2:C1000].Sort key1:=[A2]
    [A:A].Find(what:=nom).Select
  End If
End Sub


JB
 
Re : Tri automatique Excel VBA

Merci...
Euh, bon, encore quelques questions :
1 - Je vais avoir 52 feuilles qui appelleront le tri automatique. Si je veux écrire ce code une seule fois et l'appeler depuis chacune de ces feuilles, où dois-je écrire ce code et comment ? Dois-je l'écrire dans un module que je crée ? Dans ce cas, que dois-je écrire dans chaque feuille pour appeler le script ?

2 - le script du fichier TriDyn fonctionne parfaitement. Mais je me rends compte qu'il se met à buguer si je protège et verrouille les cellules de la colonne B. Que dois-je faire pour régler le problème et m'autoriser la protection de certaines plages de cellules ?

3 - le tri automatique s'effectue sur la colonne A comportant des codes à 6 caractères de type 140012. Mais je voudrais pouvoir saisir des codes de type 001254 en gardant les 2 premiers zéros. J'imagine que je dois donc me mettre en format texte mais le script ne fonctionne plus... Comment adapter ce script pour garder les zéros qui apparaissent en tant que premiers caractères ?

Merci.

P.S. : j'envoie le fichier pour aider vos réponses. Merci encore. Et désolé pour ma nullité mais je me soigne et potasse les bouquins (mais depuis seulement 2 jours !).
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Y
Réponses
5
Affichages
2 K
youklebambou
Y
Réponses
4
Affichages
1 K
T
Réponses
28
Affichages
3 K
J
Réponses
2
Affichages
1 K
Justine B
J
J
Réponses
6
Affichages
2 K
J
Réponses
0
Affichages
2 K
C
  • Question Question
Réponses
4
Affichages
1 K
M
Réponses
11
Affichages
2 K
Melidan2006
M
G
Réponses
4
Affichages
1 K
GSolti
G
C
Réponses
1
Affichages
1 K
C
J
Réponses
11
Affichages
2 K
Jean.delanou
J
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…