Modifier couleur onglet en fonction de

Bonjour,

j'aimerai modifier la couleur des mes onglets excel en fonction du nom de l'onglet.

En gros j'ai un onglet "L.1" (j'aimerai qu'il soit rouge), par la suite je crée un nouvel onglet "L.2" (copie du L.1) mais j'aimerai qu'il soit bleu.

En gros si l'onglet est pair il devient bleu et s'il est impair rouge.

Merci pour votre aide.

Re, vaffancolor,

Un essai......je récupère le nom de l'onglet, je retire L. et je teste si le chiffre est pair.

Sub test()

 Dim fl As Worksheet                         'déclaration de la variable fl (feuille)

     For Each fl In Worksheets               ' pour chaque feuille du classeur
        x = Right(fl.Name, Len(fl.Name) - 2) ' je supprime les 2 premiers caractères du nom pour ne garder que le chiffre

       With fl.Tab
        If x Mod 2 = 0 Then                  'test si chiffre pair
        .Color = 12611584                    'si pair couleur onglet bleu
        Else
        .Color = 255                         'sinon couleur onglet rouge
       End If
      End With
    Next fl

End Sub

Bien entendu la macro ne fonctionne que si le fichier commence par L. et est suivi d'un nombre

Cordialement,

Merci pour tes réponses.

La Macro bloque sur le If xMod 2 = 0 Then

ci-joint ma macro :

Sub DupliquerFeuilleActiveL()

Dim nomF$

If Left(activesheet.Name, 2) = "L." And activesheet.Name = Sheets(Worksheets.Count).Name Then

If IsNumeric(Split(activesheet.Name, ".")(1)) Then

nomF = Split(activesheet.Name, ".")(1)

activesheet.Copy After:=Sheets(Worksheets.Count)

activesheet.Name = "L." & nomF + 1

End If

End If

Dim fl As Worksheet 'déclaration de la variable fl (feuille)

For Each fl In Worksheets ' pour chaque feuille du classeur

x = Right(fl.Name, Len(fl.Name) - 2) ' je supprime les 2 premiers caractères du nom pour ne garder que le chiffre

With fl.Tab

If x Mod 2 = 0 Then 'test si chiffre pair

.Color = 12611584 'si pair couleur onglet bleu

Else

.Color = 255 'sinon couleur onglet rouge

End If

End With

Next fl

End Sub

Par contre j'ai trois autres feuilles avant les feuilles L.1 etc...

Bonjour,

Je me suis permis de modifier un peu le code, normalement il récupère le nombre d'une feuille indépendamment de son nom.

Sub test()

 Dim fl As Worksheet                         'déclaration de la variable fl (feuille)

     For Each fl In Worksheets               ' pour chaque feuille du classeur
        x = CInt(Val(fl.Name)) ' je récupère le nombre

       With fl.Tab
        If x Mod 2 = 0 Then                  'test si chiffre pair
        .Color = 12611584                    'si pair couleur onglet bleu
        Else
        .Color = 255                         'sinon couleur onglet rouge
       End If
      End With
    Next fl

End Sub

PS : le code précédent fonctionne aussi mais il faut rajouter CInt() pour convertir les caractères chiffres de x en nombre

Re,

Salut Pedro22

La Macro bloque sur le If xMod 2 = 0 Then

Comme je te l'ai dit, tes feuilles doivent s'appeler L. et un nombre, sinon ça plante.

Comment se nomment tes 3 premières feuilles ? Il faut peut-être les exclure de la macro....

Donnees, Cartouche, récapitulatif et indication

Merci

Bonjour,

ci-jointe autre proposition

11essai-1.xlsm (19.13 Ko)

bonjour

peux être avec un split si tu a un point après le L

A voir

Sub test()
Dim X&
Dim Fl As Worksheet                         'd?claration de la variable fl (feuille)

     For Each Fl In Worksheets               ' pour chaque feuille du classeur
'        X = CInt(Val(fl.Name)) ' je r?cup?re le nombre
        X = Split(Fl.Name, ".")(1)
       With Fl.Tab
        If X Mod 2 = 0 Then                  'test si chiffre pair
        .Color = 12611584                    'si pair couleur onglet bleu
        Else
        .Color = 255                         'sinon couleur onglet rouge
       End If
      End With
    Next Fl

End Sub

A+

Maurice

Re,

A tester:

Sub test()

 Dim fl As Worksheet                         'déclaration de la variable fl (feuille)

     For Each fl In Worksheets               ' pour chaque feuille du classeur

      If fl.Name <> "Données" And fl.Name <> "Cartouche" And fl.Name <> "récapitulatif" And fl.Name <> "indication" Then

        x = Right(fl.Name, Len(fl.Name) - 2) ' je supprime les 2 premiers caractères du nom pour ne garder que le chiffre
     End If

       With fl.Tab
        If x Mod 2 = 0 Then                  'test si chiffre pair
        .Color = 12611584                    'si pair couleur onglet bleu
        Else
        .Color = 255                         'sinon couleur onglet rouge
        End If

      End With

      If fl.Name = "Données" Or fl.Name = "Cartouche" Or fl.Name = "récapitulatif" Or fl.Name = "indication" Then
         fl.Tab.Color = xlAutomatic  'aucune couleur sur les 4 premières feuilles
      End If
    Next fl

End Sub
Rechercher des sujets similaires à "modifier couleur onglet fonction"