Résolu XL 2016 Fonction if et else vba

Monhtc

XLDnaute Occasionnel
Bonjour le forum, je galère sur un code vba de la fonction if avec deux conditions.
En effet je veux obtenir un resultat suivant la valeur d'une combobox.
VB:
 If Me.ComboBox1.Value = "bon" Then
.Range("C24") = ""
.Range("H24") = "X"
.Range("N24") = ""
End If
If Me.ComboBox1Value = "moyen" Then
.Range("C24") = ""
.Range("H24") = ""
.Range("N24") = "X"

Else
.Range("C24") = ""
.Range("H24") = ""
.Range("N24") = ""
End If
J'aimerais que la cellule
H24= X si la combobox1=bon Et les cellules C24 et N24 Soient vident
ou N24=X si combobox1=moyen Et les cellules C24 et H24 Soient vident
Sinon toutes les cellules designées C24 H24 N24 restent vident
 
Ce fil a été résolu! Aller à la solution…

chris

XLDnaute Barbatruc
Bonjour

Si elles sont vides au départ

VB:
If Me.ComboBox1.Value = "bon" Then
.Range("H24") = "X"
ElseIf Me.ComboBox1Value = "moyen" Then
.Range("N24") = "X"
End If
sinon
Code:
.Range("C24") = ""
.Range("H24") = ""
.Range("N24") = ""
If Me.ComboBox1.Value = "bon" Then
.Range("H24") = "X"
ElseIf Me.ComboBox1Value = "moyen" Then
.Range("N24") = "X"
End If
 
Ce message a été identifié comme étant une solution!

soan

XLDnaute Accro
Bonjour @Monhtc, chris,

Je propose ce code VBA :
VB:
Sub Essai()
  [C24, H24, N24].ClearContents
  If ComboBox1 = "bon" Then [H24] = "X" Else _
    If ComboBox1 = "moyen" Then [N24] = "X"
End Sub
Ne pas mettre la 1ère ligne de la sub
si les 3 cellules sont déjà vides.


soan
 
Ce message a été identifié comme étant une solution!

Monhtc

XLDnaute Occasionnel
Bonjour

Si elles sont vides au départ

VB:
If Me.ComboBox1.Value = "bon" Then
.Range("H24") = "X"
ElseIf Me.ComboBox1Value = "moyen" Then
.Range("N24") = "X"
End If
sinon
Code:
.Range("C24") = ""
.Range("H24") = ""
.Range("N24") = ""
If Me.ComboBox1.Value = "bon" Then
.Range("H24") = "X"
ElseIf Me.ComboBox1Value = "moyen" Then
.Range("N24") = "X"
End If
Ça marche parfaitement merci à @chris
 

Monhtc

XLDnaute Occasionnel
Bonjour @Monhtc, chris,

Je propose ce code VBA :
VB:
Sub Essai()
  [C24, H24, N24].ClearContents
  If ComboBox1 = "bon" Then [H24] = "X" Else _
    If ComboBox1 = "moyen" Then [N24] = "X"
End Sub
Ne pas mettre la 1ère ligne de la sub
si les 3 cellules sont déjà vides.


soan
Ça marche Nickel
 

ChTi160

XLDnaute Barbatruc
Bonjour Monhtc
Bonjour le Fil ,le Forum
ou un truc du genre
VB:
With Me.ComboBox1
    maFeuille.Range("C24") = "" 'ici je sais pas 
    maFeuille.Range("H24") = IIf(.Value = "bon", "X", "")
    maFeuille.Range("N24") = IIf(.Value = "moyen", "X", "")
End With
Bonne journée
jean marie
 

soan

XLDnaute Accro
Bonjour Jean-Marie,

Tu as écrit : « maFeuille.Range("C24") = "" 'ici je sais pas »

oh, ben en fait, d'après l'énoncé, on dirait bien que C24 est toujours : "" !
donc si les cellules sont initialisées à "" dès le départ, c'est déjà ok :
y'a plus besoin d's'en préoccuper ! ;)


soan
 

Monhtc

XLDnaute Occasionnel
Bonjour

Si elles sont vides au départ

VB:
If Me.ComboBox1.Value = "bon" Then
.Range("H24") = "X"
ElseIf Me.ComboBox1Value = "moyen" Then
.Range("N24") = "X"
End If
sinon
Code:
.Range("C24") = ""
.Range("H24") = ""
.Range("N24") = ""
If Me.ComboBox1.Value = "bon" Then
.Range("H24") = "X"
ElseIf Me.ComboBox1Value = "moyen" Then
.Range("N24") = "X"
End If
Je souhaite rajouter une troisième possibilité d'avoir la case C24 coché si combobox1 est égale à mauvais
VB:
.Range("C24") = ""
.Range("H24") = ""
.Range("N24") = ""
If Me.ComboBox1.Value = "mauvais" Then
.Range("C24") = "X"
If Me.ComboBox1.Value = "bon" Then
.Range("H24") = "X"
ElseIf Me.ComboBox1Value = "moyen" Then
.Range("N24") = "X"
End If
Mais j'ai un beug
 

chris

XLDnaute Barbatruc
Bonjour
VB:
.Range("C24") = ""
.Range("H24") = ""
.Range("N24") = ""
Select case Me.ComboBox1.Value
    case "mauvais" 
        .Range("C24") = "X"
    Case "bon" 
        .Range("H24") = "X"
    Case "moyen" 
      .Range("N24") = "X"
End Select
 
Ce message a été identifié comme étant une solution!
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonjour le Fil ,le Forum
peut être ainsi !
VB:
.Range("C24") = ""
.Range("H24") = ""
.Range("N24") = ""
If Me.ComboBox1.Value = "mauvais" Then
.Range("C24") = "X"
ElseIf Me.ComboBox1.Value = "bon" Then 'Ici ElseIf au lieu de If
.Range("H24") = "X"
ElseIf Me.ComboBox1Value = "moyen" Then
.Range("N24") = "X"
End If
tu avais testé ma proposition #6
voir essai dans Userform (pour Visuel)
jean marie
 
Ce message a été identifié comme étant une solution!

Fichiers joints

Dernière édition:

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas