Macro excel - if...then

Bonjour,
Quelle commande faut-il écrire pour :
si le contenu de la cellule b12 = "test" alors la cellule A3 a un fond bleu
?

Je sais, ca doit vous paraitre trivial, mais je commence seulement à me mettre à visual basic.
Autre question : Quel bouquin sur la programmation en visual basic pour excel me conseillez vous ? (qui commence au niveau 0 !)
merci d’avance !

Slu
pour le changement de couleur il faut alle dans : Format -> Mise en forme conditionnelle

le pb, avec la mise en forme conditionnelle, c’est qu’on met en forme la cellule dans laquelle il y a le texte “test”.
Là, je veux que la cellule A3 soit mise en forme (sans texte à l’interieur) en fonction de ce qui est écrit dans la cellule b12

ah oui …

tu n as qu a mettre qqchose dans la cellule …par exemple un point …

:non:
je ne veux rien mettre dans la cellule .
je suis sur qu’une commande du style :
if cellule b12=“test” then colorie cellule A3 en bleu
doit forcément exister … :neutre:

ben si tu trouves ca m interesse aussi .

J’ai trouvé :
Range(“b12”).Select
If ActiveCell = “test” Then GoTo couleur
Exit Sub
couleur:
Range(“a3”).Select
With Selection.Interior
.ColorIndex = 8
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With

End Sub

Je ne sais pas s’il y a plus simple, mais je suis content d’avoir trouvé :bounce:

Bon alors, les pbs s’enchainent. J’ai développé un peu la commande ci-dessus et ça ne fonctionne pas.
voici ma ligne de commande :
Range(“b12”).Select
If ActiveCell = “culture” Then GoTo couleurculture
ElseIf ActiveCell = “assos” Then GoTo couleurassos
ElseIf ActiveCell = “mairie” Then GoTo couleurmairie
End If
Exit Sub
couleurculture:
Range(“a3”).Select
With Selection.Interior
.ColorIndex = 8
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Exit Sub
couleurassos:
Range(“a3”).Select
With Selection.Interior
.ColorIndex = 4
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Exit Sub
couleurmairie:
Range(“a3”).Select
With Selection.Interior
.ColorIndex = 1
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Exit Sub
End Sub

A l’éxecution, un message d’erreur apparait : “erreur de compilation : else sans if”.
Je ne trouve pas l’erreur…
:neutre:

Cela doit venir de là. Tu as un elseif en trop.
Utilise plutot "Select Case":

Select case ActiveCell.value

Case "culture"
Goto couleurculture

Case "assos"
GoTo couleurassos

Case "mairie"
GoTo couleurmairie

End Select

ça fonctionne, merci !
:super:

tu mets ca dans quel endroit sous l’outil vb de excel ??

Salut,
Pourquoi passer par une macro, la mise en forme conditionnelle fonctionne même si la cellule à tester est différente de la cellule à mettre en forme.

Il suffit de :

  • se positionner sur la cellule à mettre en forme
  • Format/mise en forme conditionnelle
  • Choisir ( à la place de “la valeur de la cellule est”) l’option “La formule est”
  • Taper : =$B$12="Test"
  • Choisir la mise en forme à appliquer

@+

C’est vrai, mais l’inconvénient est que l’on ne peut tester que 3 conditions.

Tout à fait Takama