Probleme code vba simple

Résolu
alex -  
 alex -
Bonjour,

qui peut me resoudre ce petit code vba tout simple : je vous mets un exemple de plage excel : je veux que m3 se colorie si o3 >p3 , que n3 se colorie si o3<p3, que m3 et n3 se colorient si o3=p3 donc ca c'est bon ca marche. par contre je voudrais dire que si la cellule o3 et cellule p3 sont vides alors aucun coloriage (actuellement avec le code ci-dessous les 2 sont coloriées)

m n o p
3 Roche Valdahon 8 12

Private Sub CommandButton1_Click()
i = Range("o3").Value
j = Range("p3").Value
If IsEmpty(Range("o3")) Then
With Worksheets("equipe1c").Range("m3")
.Interior.Color = RGB(0, 255, 255)
End With
With Worksheets("equipe1c").Range("n3")
.Interior.Color = RGB(0, 255, 255)
End With
End If

If i > j Then
With Worksheets("equipe1c").Range("m3")
.Interior.Color = RGB(0, 255, 255)
End With
With Worksheets("equipe1c").Range("n3")
.Interior.Color = RGB(255, 255, 255)
End With
End If
If i < j Then
With Worksheets("equipe1c").Range("m3")
.Interior.Color = RGB(255, 255, 255)
End With
With Worksheets("equipe1c").Range("n3")
.Interior.Color = RGB(0, 255, 255)
End With
End If
If i = j Then
With Worksheets("equipe1c").Range("m3")
.Interior.Color = RGB(0, 255, 255)
End With
With Worksheets("equipe1c").Range("n3")
.Interior.Color = RGB(0, 255, 255)
End With
End If

merci d'avance

3 réponses

  1. alex
     
    pour info RGB (0.255,255) = aucun coloriage et c'est donc ma partie en gras qui ne doit pas aller
    merci bcp
    0
    1. alex
       
      et j'ai deja essayer, mais sans succes
      If i="" and j="" Then
      With Worksheets("equipe1c").Range("m3")
      .Interior.Color = RGB(0, 255, 255)
      End With
      With Worksheets("equipe1c").Range("n3")
      .Interior.Color = RGB(0, 255, 255)
      End With
      End If
      0
  2. Yoda
     
    Bonjour,

    Essaies avec ce code

    If IsEmpty(Range("o3")) or IsEmpty(Range("n3")) Then 
        With Worksheets("equipe1c").Range("m3") 
        .Interior.Color = RGB(0, 255, 255) 
        End With 
        With Worksheets("equipe1c").Range("n3") 
        .Interior.Color = RGB(0, 255, 255) 
        End With 
    Else
    
       'recopie con code ici
       'If i > j Then
       '...
       '...
       'End With 
       'End If 
    
    End If 


    Si ça ne marche pas, changes
    If IsEmpty(Range("o3")) or IsEmpty(Range("n3")) Then
    par
    If Range("o3")="" or Range("n3")="" Then
    0
  3. alex
     
    merci pour ta reponse : si je t'ai bien suivi, ca donne le code ci dessou, par contre ca marche tjs pas, les 2 cases sont colorées, avec tes 2 méthodes :

    If Range("o3") = "" Or Range("p3") = "" Then
    With Worksheets("equipe1c").Range("m3")
    .Interior.Color = RGB(0, 255, 255)
    End With
    With Worksheets("equipe1c").Range("n3")
    .Interior.Color = RGB(0, 255, 255)
    End With
    Else
    If i > j Then
    With Worksheets("equipe1c").Range("m3")
    .Interior.Color = RGB(0, 255, 255)
    End With
    With Worksheets("equipe1c").Range("n3")
    .Interior.Color = RGB(255, 255, 255)
    End With
    End If
    If i < j Then
    With Worksheets("equipe1c").Range("m3")
    .Interior.Color = RGB(255, 255, 255)
    End With
    With Worksheets("equipe1c").Range("n3")
    .Interior.Color = RGB(0, 255, 255)
    End With
    End If
    If i = j Then
    With Worksheets("equipe1c").Range("m3")
    .Interior.Color = RGB(0, 255, 255)
    End With
    With Worksheets("equipe1c").Range("n3")
    .Interior.Color = RGB(0, 255, 255)
    End With
    End If
    End If
    0
    1. alex
       
      jviens deja de voir que la non couleur c'est (255,255,255) et non pas (0,255,255) mais bon je crois que j'ai tjs un soucis :(
      0
    2. alex
       
      c'est bon ca marche !!! merci pour tout YODA !!
      ++
      0