Tri automatique Excel

Bonjour,

Je voudrais faire un simple tri automatique sur plusieurs feuilles (identique dans la structure) lorsque j'ajoute un nom dans la colonne B. Dans ce forum, je suis parvenu à trouver ce que je cherchais (voir code ci-dessous)

Par contre, le tri ne se fait que sur la 1ère feuille. Que faut-il modifier pour ajouter et trier dans toutes les feuilles du classeur ?

Merci

Code Feuil1

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then

Call Tri

End If

End Sub

Code Module1

Sub Tri()

Dim LastRow As Long

LastRow = ActiveSheet.Range("B2").End(xlDown).Row

Range("B3:I" & LastRow).Sort Key1:=Range("B3"), Order1:=xlAscending, Key2:=Range("B3"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _

:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _

DataOption2:=xlSortNormal

End Sub

Bonjour,

Tu mets dans ThisWorkbook le code suivant

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  ' Vérifier si modification dans feuilles désignées
  If InStr(1, "Feuil1,Feuil2,Feuil4", Sh.Name) > 0 Then
    ' Si modification dans colonne B
    If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then Call Tri
  End If
End Sub

Et dans le module, un petit changement

Sub Tri()
  Dim LastRow As Long
  ' Avec la feuille active
  With ActiveSheet
    ' Trouver la dernière ligne du tableau
    LastRow = .Range("B2").End(xlDown).Row
    ' Trier la feuille
    .Range("B3:I" & LastRow).Sort Key1:=Range("B3"), Order1:=xlAscending, Key2:=Range("B3"), Order2:=xlAscending, _
    Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
  End With
End Sub

A+

Je reçois un message de débogage.

Je suppose qu'à la place de "feuil1",.. je rentre le nom de mes feuilles et que si ma 1ère colonne se trouve en A ou en C, je modifie tous les B par la lettre qui convient ?

Merci

Re,

Tu supposes bien

J'ai une petite erreur de débogage..

J'ai ici un fichier "test", je vais créer le bon fichier par la suite quand cela fonctionnera parfaitement.

https://www.cjoint.com/c/FIhiCmtTmEq

Re,

Normal, tu as créé un tableau automatique sur ta feuille

Donc le tri de ne peut/doit se faire que sur les colonnes de ton tableau, en l’occurrence

.Range("A2:B" & LastRow)

A+

J'ai toujours un débogage..

Le mieux est de retirer le tri automatique de la 1ère ligne et d'utiliser le "premier" code ?

Re,

Voici ton fichier modifié selon mes indications, pas de problème de mon côté

Ceci dit, si tu n'utilises que Excel 2010, mieux vaudrait faire le tri avec l'objet "Sort"

Il y a des tutos la dessus

Rechercher des sujets similaires à "tri automatique"