Trier onglet par couleur

bill

XLDnaute Nouveau
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.
 

Matheop

XLDnaute Occasionnel
Re : Trier onglet par couleur

Salut bill.

C'est sûrement possible en jouant avec des Sheets(1).Tab.ColorIndex
Mais tu souhaites faire quoi au juste? Parce que trier des onglets par ordre alphabétique okey c'est possible et utile, autant les trier par couleur je ne vois pas trop comment faire à moins de comparer l'index de la couleur de 2 onglets et d'agir en fonction...
 

ROGER2327

XLDnaute Barbatruc
Re : Trier onglet par couleur

Bonjour à tous


Un essai dans le classeur joint.​


ROGER2327
#5698


Samedi 7 Clinamen 139 (La Main de Gloire - Vacuation)
9 Germinal An CCXX, 5,1899h - aulne
2012-W13-4T12:27:20Z
 

Pièces jointes

  • XLD1.xlsm
    19.1 KB · Affichages: 163

bill

XLDnaute Nouveau
Re : Trier onglet par couleur

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).
 

Pièces jointes

  • Classeurtest - Copie.xlsm
    37.8 KB · Affichages: 143

bill

XLDnaute Nouveau
Re : Trier onglet par couleur

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.
 

ROGER2327

XLDnaute Barbatruc
Re : Trier onglet par couleur

Re...

La procédure proposée plus haut légèrement adaptée comme suit :
VB:
Sub toto()
Dim feuille
    With ActiveWorkbook
        For Each feuille In .Sheets
            If feuille.Tab.ColorIndex = 55 Then feuille.Move After:=Sheets(Sheets.Count)
        Next
    End With
End Sub
devrait fonctionner.

Il vous suffit de placer
Code:
toto
au bon endroit de votre propre code pour que l'action s’exécute quand vous le juger utile.​


ROGER2327
#5701


Samedi 7 Clinamen 139 (La Main de Gloire - Vacuation)
9 Germinal An CCXX, 5,4765h - aulne
2012-W13-4T13:08:37Z
 

ROGER2327

XLDnaute Barbatruc
Re : Trier onglet par couleur

Re...


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.
Je n'avais pas vu ce message quand j'ai répondu ci-dessus.

Il s'agit maintenant d'un autre problème. Je vais attendre un peu que tout le vrai problème soit posé : ça m'évitera de perdre mon temps à résoudre des problèmes qui ne se posent pas...

À plus tard...​


ROGER2327
#5703


Samedi 7 Clinamen 139 (La Main de Gloire - Vacuation)
9 Germinal An CCXX, 5,5940h - aulne
2012-W13-4T13:25:32Z
 

ROGER2327

XLDnaute Barbatruc
Re : Trier onglet par couleur

Re...


il n'y aura pas d'autres questions c'est bon en fait, il faudrait que ce soit en 1er la couleur bleu, en 2ème la violette mais que les 2 soient par ordre alphabétique
Bon ! Alors essayez cela :
VB:
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


ROGER2327
#5704


Samedi 7 Clinamen 139 (La Main de Gloire - Vacuation)
9 Germinal An CCXX, 5,7689h - aulne
2012-W13-4T13:50:43Z
 

Discussions similaires

Statistiques des forums

Discussions
312 581
Messages
2 089 916
Membres
104 304
dernier inscrit
halo palo