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

Résolu
kikou93 Messages postés 438 Statut Membre -  
kikou93 Messages postés 438 Statut Membre -
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

2 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    En remplaçant
    Selection
    par
    Range("B" & L)
    cela devrait mieux fonctionner.
    2
  2. Gyrus Messages postés 3360 Statut Membre 526
     
    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
    1. kikou93 Messages postés 438 Statut Membre 1
       
      ç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
      1. Gyrus Messages postés 3360 Statut Membre 526 > kikou93 Messages postés 438 Statut Membre
         
        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
      2. kikou93 Messages postés 438 Statut Membre 1 > Gyrus Messages postés 3360 Statut Membre
         
        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
    2. kikou93 Messages postés 438 Statut Membre 1
       
      ça fonctionne à merveille
      Merci infiniment pour votre aide
      0