Remplissage d'une cellule avec une macro grâce à une condition

Résolu/Fermé
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - 29 janv. 2016 à 21:15
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - 30 janv. 2016 à 10:10
Bonjour,

Je demande votre aide pour m'aider sur un problème

J'ai essayé de créer un macro qui me permet de changer le remplissage d'une cellule grace a une condition (des cellules de la Colonne B) en cliquent sur un bouton.

Voila le macro :

Sub Couleur()
Dim L As Long
For L = 1 To 40
If Range("B" & L) >= 10 Then
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5287936
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
If Range("B" & L) < 10 Then
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
If Range("B" & L) = " " Then
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 16777215
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
Next
End Sub

Mais il ne change que le remplissage de la cellule selectionnée avec une seul couleur même si je mets des conditions :

Si la valeur de la cellule >= 10 ----> Couleur vert ----> Color = 5287936 ;
Si la valeur de la cellule < 10 ----> Couleur rouge ----> Color = 255 ;
Si la valeur de la cellule >= 10 ----> Aucune couleur ----> Color = 16777215 ;

Voici le fichier Excel :

http://www.cjoint.com/c/FADuoqJ7f8G

Je suis débutant dans le langage VBA, j'ai sûrement fait beaucoup d'erreur pouvez-vous les corriger s'il vous plaît.
Merci d'avance
A voir également:

2 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
29 janv. 2016 à 23:30
Bonjour,

En remplaçant
Selection
par
Range("B" & L)
cela devrait mieux fonctionner.
2
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
30 janv. 2016 à 00:13
Bonjour,

Essaie comme cela
Sub Couleur()
Dim L As Long
For L = 5 To 20
With Range("B" & L)
If .Value >= 10 Then
.Interior.Color = 5287936
ElseIf .Value = "" Then
.Interior.Color = 16777215
ElseIf .Value < 10 Then
.Interior.Color = 255
End If
End With
Next
End Sub

A+
1
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
30 janv. 2016 à 09:19
ça fonctionne très bien merci.
mais il y a juste un petit problème j'ai mets ce code-là :

If Range("B" & L) = " " Then
With Range("B" & L).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 16777215
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If


pour que si la cellule est vide le remplissage sera avec une couleur blanche, mais on dirait que ce n'est pas pris en compte.

peux-tu m'aider sur ça s'il te plaît.
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523 > kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018
30 janv. 2016 à 09:30
Ne pas confondre "Si la cellule B5 contient un espace, alors"
If Range("B5") = " " Then

et "Si la cellule est vide, alors"
If Range("B5") = "" Then

A+
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1 > Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016
Modifié par kikou93 le 30/01/2016 à 09:42
J'ai oublié de préciser que j'ai déjà remarqué cette erreur et je l'ai corrigée, mais ça ne change rien.
Pour le macro une cellule vide et comme une cellule qui contient le numéro Zéro (0).

http://www.cjoint.com/c/FAEiLmEzdsv
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523 > kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018
30 janv. 2016 à 09:57
D'où l'utilité de ElseIf
https://www.cjoint.com/c/FAEi3z8QjCC

A+
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
30 janv. 2016 à 10:10
ça fonctionne à merveille
Merci infiniment pour votre aide
0