Condition VBA Excel

Bonjour,

j'ai un petit problème avec un userform avec des conditions

J'ai deux ->cas 1

3 labelbox qui récupère les infos en A1 B1 et C1 si C1 positif je colorie la case en vert

Cas 2

Si la case sur l'onglet sont vides cela ne marche pas

Comment faire en cas de cases vides?

Ci-joint un exemple en pièce jointe

41classeur1.zip (14.53 Ko)

Salut,

J'ai essayé ton programme, si A3 n'est pas vide, on fait son contenu et euro, s'il n'y a rien dans la cellule A3 on met des "".

J'ai aussi rajouté un bouton pour quitter la feuille, plus facile que la croix en haut.

Clairement le problème viens de la compatibilité. Si c'est un chiffre, ça passe, si c'est un caractère (lettre, espace,...) ou rien, cela bug.

Faut voir à peut être rajouté des sécurités (validation de donnée) ou un message pour prévenir l'utilisateur.

Ou sinon faut coder pour vérifier si c'est numérique :

If IsNumeric(Range("A1")) Then

J'ai fais le test sur ton code juste pour la cellule A3.

Tu me dis ce que tu penses des solutions pour pallier au problème du contenu de cellule

7testuserform.zip (15.13 Ko)

Bonjour,

Merci de ta reponse

J'ai mis ce code mais ca ne marche pas?

If IsNumeric(Range("A3")) Then
ElseIf Label9.Caption > 0 Then
Label9.BackColor = RGB(250, 50, 0)
Else
Label9.BackColor = RGB(50, 250, 0)
End If

If IsNumeric(Range("A3")) Then

ElseIf Label9.Caption > 0 Then

Label9.BackColor = RGB(250, 50, 0)

Else

Label9.BackColor = RGB(50, 250, 0)

End If

Reprenons ligne par ligne

Si le contenu de A3 est numérique Alors je veux que tuuuuuuuuuut (rien)

Sinon Si mon Label9 est >0 Alors je veux que Blabla ^^

Déjà qu'Excel est un peu con, si en plus tu l'embrouilles, il va t'insulter en Suédois le pauvre.

Il faut faire le test au départ, ici Je dis que si la cellule A3 n'est pas vide ET qu'elle contient une valeur numérique, alors on prend son contenu et on fait la mise en couleur

Sinon on laisse le label vide (tu peux aussi mettre un message en remplaçant le "" par "Non Valide", "Non Renseigné", "Entrer un chiffre", Comme tu le sens

 If Sheets("feuil1").Range("A3") <> "" And IsNumeric(Range("A3")) Then
    Label7.Caption = Sheets("feuil1").Range("A3") & " €"
    Label8.Caption = Sheets("feuil1").Range("B3") & " €"
    Label9.Caption = Sheets("feuil1").Range("C3") & " €"

    If Label7.Caption > 0 Then
    Label7.BackColor = RGB(250, 50, 0)
    Else
    Label7.BackColor = RGB(50, 250, 0)
    End If
Else
    Label7.Caption = ""
    Label8.Caption = ""
    Label9.Caption = ""
End If

End Sub

Merci ça marche sujet clos

Rechercher des sujets similaires à "condition vba"