VBA If/Else/Then couleurs

  • Initiateur de la discussion Initiateur de la discussion etienne97
  • Date de début Date de début

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 !

E

etienne97

Guest
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.
 
Re : VBA If/Else/Then couleurs

Bonjour à tous,

Peux-tu essayer :

Code:
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

A + à tous
 
Re : VBA If/Else/Then couleurs

Salut etienne97 et le forum
Je viens tout juste de débuter avec VBA.
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+
 
Dernière édition:
- 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.

Discussions similaires

Réponses
7
Affichages
178
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
592
Réponses
3
Affichages
313
Réponses
4
Affichages
523
Réponses
2
Affichages
411
Retour