Tri automatique après insertion

  • Initiateur de la discussion Initiateur de la discussion bobafric
  • 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 !

bobafric

XLDnaute Occasionnel
Bonjour à tous,
je voudrai que les lignes ( nouvelles données) que je rentre à la suite de mes tableaux soient triées automatiquement dans l'ordre croissant à partir de la 1ère colonne (A).
Est-ce possible sans bouton pour activer une macro?
Petit exemple en pièce jointe.
merci pour votre attention.
Cordialement Bob
 

Pièces jointes

Re : Tri automatique après insertion

Bonjour bobafric, le forum,

avec une macro événementielle cela est possible.

dans le code de la feuille 1 et en supprimant les 2 lignes vides (ligne 2 et ligne 13).

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("a1").CurrentRegion.Sort key1:=Range("a1"), order1:=xlAscending, header:=xlYes
End Sub

Dis-nous si ça marche!
 
Re : Tri automatique après insertion

Salut titi, un peu long à répondre mais j'ai fait une bad manoeuvre.
Ton code fonctionne mais comment le faire pour tout le classeur.
Ensuite lorsque je rentre les données, dès que la colonne A est remplie la nouvelle ligne s'insère tout de suite à sa place sans que je puisse entrer toutes les données.
je suis obligé de remonter jusqu'à cette nouvelle insertion pour le faire, et si j'ai 1200 lignes tu vois la difficulté.
Donc il faudrait que le tri se fasse lorsque la ligne est complète ou que l'on puisse placer le curseur sur la ligne insérée.
Un peu compliqué mes explications, j'espère que ce sera assez clair.
Merci bob
 
Re : Tri automatique après insertion

Tu voulais
Est-ce possible sans bouton pour activer une macro?
donc oui ça s'active immédiatement...

et si tu termines par la colonne A c'est pareil?
Sinon il faut placer une condition pour le change. A combiner avec if counta(target.row)= nb de colonne à remplir (de A à E = 5) alors faire le tri sinon rien...

Edit: essaie avec le code suivant en lieu et place du précédent (chez moi ça marche!):
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
l = Target.Row 'ligne où tu saisis
a = Application.CountA(Rows(l)) 'compte les valeurs de la ligne où tu saisis
If a = 8 Then 'si les 8 colonnes sont saisies alors il lance le tri, sinon rien!
    Range("a1").CurrentRegion.Sort key1:=Range("a1"), order1:=xlAscending, header:=xlYes
End If

End Sub


QU'entends tu par le faire pour tout le classeur?
 
Dernière édition:
Re : Tri automatique après insertion

RE salut titi
je n'étais plus sur mon pc et je viens juste de découvrir ton code qui fonctionne à merveille.
Je te disais pour tout le classeur c'est à dire que j'ai plusieurs feuilles à remplir et je dois mettre le code dans chaque feuille, j'aurai voulu que le code soit dans le workbook pour qu'il soit généré pour n'importe laquelle des feuilles du classeur.
Sinon je suis très content du résultat.
bob
 
Re : Tri automatique après insertion

Bonjour titi
J'ai fait ce que tu dis et ça marche, il n'y a que quelques feuilles.
Par contre lorsque je laisse une cellule de la ligne vide car il n'y a rien à ajouter, le code ne fonctionne pas, il faut que je clique au moins sur la barre d'espace pour qu'arriver à la dernière cellule la ligne se mette en place.
je te donne encore du souci, excuses-moi.
Cordialement Bob
 
- 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

Discussions similaires

C
Réponses
0
Affichages
784
CaptainMerlux
C
Réponses
21
Affichages
5 K
C
Réponses
0
Affichages
3 K
C
C
Réponses
13
Affichages
2 K
ChrisH
C
L
Réponses
5
Affichages
1 K
L
Retour