Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Bonjour,
Je viens tout juste de débuter avec VBA. J'ai voulu faire une macro qui coloriait la cellule a1 en rouge si sa valeur était entre 100 et 1000. Si ce n'était pas le cas, je voulais donc que le fond de la cellule soit vert. J'ai alors tanté de l'écrire comme suit:
Sub couleur()
Dim Perf As Range
Set Perf = Range("a1")
If 100 < Perf < 1000 Then
'fond rouge
Perf.Interior.ColorIndex = 3
Else
'fond vert
Perf.Interior.ColorIndex = 4
End If
End Sub
Que je fasse quoi que ce soit, elle est toujours rouge. Si vous avez le temps, pourriez vous me dire où est mon problème? Désolé pour le vocabulaire, je ne connais presque rien sur VBA.
Option Explicit
Sub couleur()
Dim Perf As Range
Set Perf = Range("A1")
If Perf > 100 And Perf < 1000 Then
'fond rouge
Perf.Interior.ColorIndex = 3
Else
'fond vert
Perf.Interior.ColorIndex = 4
End If
End Sub
Faut bien commencer un jour
si 100<=A1<=1000, alors A1=rouge, sinon, A1=vert
Pour résoudre un tel problème, il y a deux solutions :
A1 : fond vert
Menu Format>>Mise en format conditionnelle
Condition 1
Case 1 : la formule est
Case 2 : =(100<=A1)*(A1<=1000)
Format : fond rouge
Autre solution, passer par une macro automatique
Clic-droit sur le nom de l'onglet>>Menu contextuel>>Visualiser le code
Menu déroulant de Gauche => Worksheet
Menu déroulant de Droite => Change
Excel construit la macro Worksheet_Change, qui se lancera à chaque modification de la feuille.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
If 100 <= [A1] And [A1] <= 1000 Then
Range("A1").Interior.ColorIndex = 3
Else
Cells(1, "A").Interior.ColorIndex = 50
End If
End If
End Sub
Si (if) l'adresse (address) relative (0,0) des cellules modifiées (target - variable système) est égale à A1 alors
si A1 compris entre 100 ET (and) 1000, alors
fond (interior) de A1 égal la couleur d'index (colorindex) 3 (valeur pour rouge), sinon (else) fond = couleur d'index 50 (vert).
Ton code est similaire (à part l'exclusion des limites et la couleur d'index - dépend de la palette) et si tu lance manuellement ton code, il fonctionnera.
Pour voir ce qui se passe, fait du Pas-à-pas (mettre un point d'arrêt sur la ligne de titre, pour qu'excel te rende la main).
Pense à utiliser les balises de code (icone # en mode avancé)
A+
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.