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
 
Solution
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

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
 

soan

XLDnaute Barbatruc
Inactif
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
 

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
 

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 Barbatruc
Inactif
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
 
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
 

Pièces jointes

  • Montch Test Visuel.xlsm
    21.5 KB · Affichages: 10
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 902
Membres
101 834
dernier inscrit
Jeremy06510