Trier les onglets

Résolu
Bonjour,

Après quelques recherches, je n'ai pas trouvé de réponses. Peut-on trier des onglets en fonction de leurs couleurs ? J'ai vu qu'on pouvait le faire par ordre alphabétique mais je n'ai pas trouvé avec la couleur.

10 réponses

  • Votes
  • Date
  • Date décroissante
  1. qu'entenends-tu par la couleur des onglets ? tu veux dire la couleur des icones ?
    1. https://www.cjoint.com/?3CDoKTuGkaU
      Je vous joins un fichier. Je mets un fichier de chantier à jour quand la facturation est faite. Les onglets se remplissent automatiquement et passe de la couleur violette quand le chantier est fini et bleu tant qu'il est en cour. Ce que je souhaite c'est que les onglets de couleur violette (les chantiers finis se mettent à la fin car je n'en ai plus besoin).
      1. Contributeur
        Bonjour,
        Essaye avec...
        Sub DepFeuille()
        Dim F As Worksheet
            For Each F In Worksheets
                If F.Index = Sheets.Count Then Exit For
                If F.Tab.ColorIndex = 55 Then
                    F.Move after:=Sheets(Sheets.Count)
               End If
            Next F
        End Sub

        Tu dis
        1. une autre question

          En fait j'ai une autre condition ma collègue veut que ce soit également par ordre alphabétique dont les bleus en 1er par ordre alphabétique et les violets à la fin également par ordre alphabétique.
          1. Contributeur
            une autre question ?
            Merci de t'intéresser à ma réponse ??????? et rapidement, j'ai pas dû attendre !!

            1. ta réponse marche trés bien pour les couleurs mais quand j'ai montré à ma collègue elle m'a dit quelle voulait aussi que ce soit trié par ordre alphabétique.
              1. Oui pardon désolé c'était pour répondre vite. Merci pour les réponses
                1. Contributeur
                  Je préfère comme ça,...
                  Pour ta question, faudrait avoir un exemple un peu plus concret,
                  Un classeur avec autant d'onglet qu'il n'y a de couleurs
                  Ou si tu connais les N° des couleurs c'est bon aussi.
                  A+
                  1. Re,

                    c'est bon on m'a aidé à trouver la solution, ça peut servir :

                    Sub tata()
                    Dim c%, i&, tmp$, feuille
                    Application.ScreenUpdating = False
                    couleurs = Array(37, 55)
                    With ActiveWorkbook
                    For c = 0 To UBound(couleurs)
                    ReDim noms(0)
                    For Each feuille In .Sheets
                    If feuille.Tab.ColorIndex = couleurs(c) Then ReDim Preserve noms(1 + UBound(noms)): noms(UBound(noms)) = feuille.Name
                    Next
                    For i = 1 To UBound(noms) - 1
                    tmp = noms(i)
                    For j = i + 1 To UBound(noms)
                    If tmp > noms(j) Then noms(i) = noms(j): noms(j) = tmp: tmp = noms(i)
                    Next
                    .Sheets(tmp).Move After:=.Sheets(Sheets.Count)
                    Next
                    .Sheets(noms(UBound(noms))).Move After:=.Sheets(Sheets.Count)
                    Next
                    End With
                    Application.ScreenUpdating = True
                    End Sub

                    Merci de m'avoir accordé du temps. Bonne soirée