couleur onglet automatique

stash

XLDnaute Nouveau
Bonjour,

Tout d'abord, je vais me présenter^^

Je m'appelle Sébastien, et je me suis lancé dans les macros que récemment, alors soyez indulgent^^

Je suis en train de céer un document pour des recettes de cuisines^^mais ça s'adapte à plein d'autre utilités^^

Je bloque sur la macro suivante...
Code:
Sub couleur()

If ActiveSheet.Range("A1") = "Dessert" Then
ActiveSheet.Tab.ColorIndex = 14

If ActiveSheet.Range("A1") = "Entrée" Then
ActiveSheet.Tab.ColorIndex = 43

If ActiveSheet.Range("A1") = "Pâte" Then
ActiveSheet.Tab.ColorIndex = 40

If ActiveSheet.Range("A1") = "Poisson" Then
ActiveSheet.Tab.ColorIndex = 33

If ActiveSheet.Range("A1") = "Viande" Then
ActiveSheet.Tab.ColorIndex = 18

If ActiveSheet.Range("A1") = "Sauce" Then
ActiveSheet.Tab.ColorIndex = 45

End If
End If
End If
End If
End If
End If
End Sub

Qui me permettrait, en fonction des critères donnés de colorier mes onglets....
Je vous ai joint mon tableur....il se pourrait qu'avec mes multiples tentative, j'ai fait des erreurs....si vous pouviez en profiter pour controler les autres macros....

Je vous dis merci, car j'ai déjà utilisé pas mal de solutions présentes dans votre fofo^^
 

Pièces jointes

  • Livre de recette.xlsm
    116 KB · Affichages: 68
  • Livre de recette.xlsm
    116 KB · Affichages: 70
  • Livre de recette.xlsm
    116 KB · Affichages: 78

ROGER2327

XLDnaute Barbatruc
Re : couleur onglet automatique

Bonjour stash.


Essayez :​
VB:
Sub couleur()

  If ActiveSheet.Range("A1") = "Dessert" Then
    ActiveSheet.Tab.ColorIndex = 14
  ElseIf ActiveSheet.Range("A1") = "Entrée" Then
    ActiveSheet.Tab.ColorIndex = 43
  ElseIf ActiveSheet.Range("A1") = "Pâte" Then
    ActiveSheet.Tab.ColorIndex = 40
  ElseIf ActiveSheet.Range("A1") = "Poisson" Then
    ActiveSheet.Tab.ColorIndex = 33
  ElseIf ActiveSheet.Range("A1") = "Viande" Then
    ActiveSheet.Tab.ColorIndex = 18
  ElseIf ActiveSheet.Range("A1") = "Sauce" Then
    ActiveSheet.Tab.ColorIndex = 45
  Else
    ActiveSheet.Tab.ColorIndex = xlNone
  End If
End Sub
ou :​
VB:
Sub couleur()

  With ActiveSheet.Tab
    Select Case .Parent.Range("A1").Value
    Case "Dessert": .ColorIndex = 14
    Case "Entrée": .ColorIndex = 43
    Case "Pâte": .ColorIndex = 40
    Case "Poisson": .ColorIndex = 33
    Case "Viande": .ColorIndex = 18
    Case "Sauce": .ColorIndex = 45
    Case Else: .ColorIndex = xlNone
    End Select
  End With
End Sub


Bonne journée.


ℝOGER2327
#7116


Dimanche 22 Décervelage 141 (Ostension du Bâton à physique - fête Suprême Seconde)
30 Nivôse An CCXXII, 4,8662h - crible
2014-W03-7T11:40:44Z
 

Hervé

XLDnaute Barbatruc
Re : couleur onglet automatique

salut :)

sois le bienvenue parmis nous

un code a placer dans le module thisworkbook pour ton souci de couleur d'onglet :

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 If Target.Address = "$A$2" Then
   On Error Resume Next
   ActiveSheet.Tab.ColorIndex = ActiveSheet.[A2].Interior.ColorIndex
   
 End If
 


Select Case Sh.Range("A1")
    Case "Dessert": Sh.Tab.ColorIndex = 14
    Case "Entrée": Sh.Tab.ColorIndex = 43
    Case "Pâte": Sh.Tab.ColorIndex = 40
    Case "Poisson": Sh.Tab.ColorIndex = 33
    Case "Viande": Sh.Tab.ColorIndex = 18
    Case "Sauce": Sh.Tab.ColorIndex = 45
End Select


End Sub

quant au reste du code ca me semble pas mal (en tout cas c'est bien mieux que ce que je faisais à mes débuts :eek:)

rapide regard :

tu peux mettre plusieurs macro par module
la déclaration des variables est vivement recommandée (travail en "option explicite", voir aide vba)
tu dois pouvoir faire une seule macro pour l'emplacement des photos

a plus

ps : tu m'a donné faim ^^

edit : bonjour roger
 
Dernière édition:

stash

XLDnaute Nouveau
Re : couleur onglet automatique

J'aurais juste une question Hervé,

Pour rajouter 2 conditions, gratin et légume par exemple^^ lol
juste en rajoutant 2 code "case", cela devrait fonctionner....non?

De même, je ne comprend pas le fait qu'au déut du code, tu fais référence à la cellule A2?

merci^^
 

Hervé

XLDnaute Barbatruc
Re : couleur onglet automatique

salut :)

pour indiquer plusieurs choix dans un select case, sépare les par des virgules, exemple :

Case "Dessert", "légumes": Sh.Tab.ColorIndex = 14

le code au début du thisworkbook faisant référence à la cellule A2 t'appartiens :)

je n'ai l'ai simplement pas supprimé

a plus
 

Discussions similaires

Réponses
25
Affichages
833

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260