Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/10/2011, 12h52   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 46
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 46
Points : 12
Points : 12
Par défaut Trier par ordre alphabétique des onglets d'une certaine couleur

Bonjour

J'ai un classeur avec 20 onglets noirs, 5 onglet bleu foncé et 40 onglets bleu clair. Je souhaiterais trier par ordre alphabétique uniquement les onglets bleu clair.

Pour le tri par ordre alphabétique en lui même, j'ai trouvé ceci :

Code :
1
2
3
4
5
6
7
Sub Tri
For i = 41 to Sheets.Count
For j = i + 1  to Sheets.Count
If UCase(Sheets(i)).Name) > UCase(Sheets(j).Name) Then Sheets(j).Move before:=Sheets(i)
Next j
Next i
End Sub
(Merci à excel-competence.over-blog.com)

Problème : je n'arrive pas du tout à ne trier que les onglets d'une couleur définie sans mélanger tous les autres onglets.

Des idées ?

Merci beaucoup pour votre aide.
shimuno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 13h49   #2
Membre confirmé
 
Inscription : juillet 2007
Messages : 209
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 209
Points : 219
Points : 219
Au moment de faire le tri , tu ajoutes un test sur la couleur d'onglet


Code :
1
2
3
4
5
6
7
8
 
Sub Tri
For i = 41 to Sheets.Count
For j = i + 1  to Sheets.Count
If UCase(Sheets(i)).Name) > UCase(Sheets(j).Name) and Sheets( i).Tab.ColorIndex = 44 Then Sheets(j).Move before:=Sheets(i)
Next j
Next i
End Sub
(Je te laisse le soin de remplacer 44 par la couleur de ton fichier)
CodeFacile est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 17h54   #3
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 46
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 46
Points : 12
Points : 12
Merci !

Plus exactement, il faut aussi ajouter la condition de couleur à sheets(j) :

Code :
1
2
3
4
5
6
7
8
Sub Tri()
 
For i = 1 To Sheets.Count
For j = i + 1 To Sheets.Count
If UCase(Sheets(i).Name) > UCase(Sheets(j).Name) And Sheets(i).Tab.ColorIndex = 19 And Sheets(j).Tab.ColorIndex = 19 Then Sheets(j).Move before:=Sheets(i)
Next j
Next i
End Sub
Merci pour tout !
shimuno est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h15.


 
 
 
 
Partenaires

Hébergement Web