Trier les onglets
Résolu
bill3003
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
bill3003 Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
bill3003 Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
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.
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.
A voir également:
- Trier les onglets
- Excel trier par ordre croissant chiffre - Guide
- Restaurer les onglets chrome - Guide
- Logiciel pour trier les photos automatiquement - Guide
- Ouvrir plusieurs onglets en même temps - Guide
- Vba trier colonne par ordre croissant - Forum VB / VBA
10 réponses
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).
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).
Bonjour,
Essaye avec...
Tu dis
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
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
une autre question ?
Merci de t'intéresser à ma réponse ??????? et rapidement, j'ai pas dû attendre !!
Merci de t'intéresser à ma réponse ??????? et rapidement, j'ai pas dû attendre !!
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.
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+
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+
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
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