Tri automatique sur plusieurs feuilles

Bonjour à tous,

J'essaie d'appliquer un tri automatique de toutes les feuilles (sauf la feuille "MENU") de mon fichier excel à chaque ouverture de celui-ci.

Cependant, je rencontre une erreur "1004" à la ligne concernant le tri.

Comment puis-je améliorer mon code afin que l'erreur "1004" ne s'affiche pas à chaque ouverture?

Private Sub Workbook_Open()

  Sheets("MENU").Visible = True

    For Compteur = Worksheets.Count To 1 Step -1

        Nom = Sheets(Compteur).Name
        Select Case Nom

        Case "MENU"

        Case Else

     Sheets(Compteur).Visible = True
     Sheets(Compteur).Activate
    Sheets(Compteur).Select

    Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

               Sheets(Compteur).Visible = False

        End Select

    Next Compteur

Sheets("MENU").Activate

End Sub

Je remercie d'avance tous ceux qui tenterons de m' aider

Meilleures salutations,

AliasOne

Bonjour

Le problème c'est que tu ne définis pas la zone à triée

Dans cette macro j'ai mis l'ensemble de la page

A tester

Private Sub Workbook_Open()
Dim Compteur As Integer

  Sheets("MENU").Visible = True
  For Compteur = Worksheets.Count To 1 Step -1
      Select Case Sheets(Compteur).Name
        Case "MENU"
        Case Else
          With Sheets(Compteur)
            .Cells.Sort Key1:=.Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
                          OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
            .Visible = False
          End With
      End Select
  Next Compteur
  Sheets("MENU").Activate
End Sub

Bonjour Banzai64,

Le message d'erreur ne s'affiche effectivement plus et je t'en remercie.

Cependant, la macro ne prend pas en compte l'entête des feuilles et trie la première ligne avec le reste du tableau. Étonnant...

Quelqu'un aurrait-il une solution pour que la macro tienne compte des entêtes dans chaque feuille?

Merci d'avance

AliasOne

Bonjour,

Est-ce que quelqu'un saurait comment faire pour que le code ne prenne pas en compte les entêtes des différentes feuilles?

Cela devrait être pris en compte par la partie du code:

Header:=xlGuess, _ 

mais cela ne fonctionne pas...

Une solution? Ou une autre façon de faire?

Merci d'avance pour votre aide!

AliasOne

Bonjour

C'est toujours le problème, sans fichier ce n'est pas évident de trouver une solution

A tout hasard

Dans la macro remplaces

[barrer].Cells.Sort Key1:=.Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
                          OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom[/barrer]
.Cells.Sort Key1:=.Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
                          OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Hello Banzai64,

Je te remercie sincèrement pour ton aide!

Ci-joint, tu trouveras le fichier concerné.

Comme tu pourras le constater, la macro prend en compte seulement les entêtes des deux derniers onglets, ce que je ne comprends pas...

Meilleures salutations

AliasOne

264alpha-ordre.zip (9.07 Ko)

Bonjour

En modifiant la macro

Remplaces xlGuess par xlYes

J'ai le tri qui s'effectue sans les entêtes

Sub Schaltfläche1_BeiKlick()
Dim Compteur As Integer

  Sheets("MENU").Visible = True
  For Compteur = Worksheets.Count To 1 Step -1

      Select Case Sheets(Compteur).Name
        Case "MENU"

        Case Else
          With Sheets(Compteur)
              .Cells.Sort Key1:=.Range("B1"), Order1:=xlAscending, Header:=xlYes, _
                          OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
            .Visible = True
          End With

      End Select
    Next Compteur
  Sheets("MENU").Activate
End Sub

Hello Banzai64,

Cela fonctionne à merveille!

Une fois de plus, tu as su résoudre le problème et je t'en remercie!

Meilleures salutations,

AliasOne

Rechercher des sujets similaires à "tri automatique feuilles"