XL 2013 IF...THEN...END IF

mvcs

XLDnaute Nouveau
Bonjour,
J'utilise la fonction classique "If [condition] then [action si condition vrai] End if".
Je voudrais savoir si je peux mettre une double condition, c'est à dire : "If [condition1 ou condition 2] then [action si 1 ou 2 est vrai] End if"
En fait, je voudrais que l'action se réalise si l'une des deux conditions est vrai, d'où le "ou", mais je ne sais pas comment l'écrire en langage vba.
Merci de votre aide.
 

JBARBE

XLDnaute Barbatruc
Bonjour à tous,
Un autre exemple :
5. Les critères de condition ET, OU

nous pouvons aussi faire de multiple contrôle dans une condition en posant les critères AND, OR et nous allons voir cela dans avec un simple petit formulaire de connexion.


AND :


le premier critères que nous allons voir c’est la critère Et et ici nous allons tester si toutes les condition sont repli si ce n’est pas le cas alors le code ne s’affiche pas.


Nous allons tester cela


Sub test()
NOM = InputBox("Veuillez indiquer votre nom")
pass = InputBox("Veuillez indiquer le mot de passe")
If NOM = "daniel" And pass = "1234" Then
MsgBox "code valide"
Else
MsgBox "code invalide"
End If
End Sub


ici nous allons contrôler si nom à la valeur daniel et que la pass à la valeur 1234. si c’est le cas nous affichant le message suivant code valide. si c’est pas le cas alors nous affichons code invalide.


OR :


la seconde critère que nous allons voir c’est le OR et avec le OR nous allons contrôler si une des conditions est rempli alors nous allons exécuter un code.


nous allons reprendre le même exemple que la conditions AND et nous allons le remplacer par OR qui veut dire ou.


ici nous allons contrôler si une des condition est rempli alors nous allons afficher le message “code invalide

Sub testA()
NOM = InputBox("Veuillez indiquer votre nom")
pass = InputBox("Veuillez indiquer le mot de passe")
If NOM = "daniel" Or pass = "1234" Then
MsgBox "code valide"
Else
MsgBox "code invalide"
End If
End Sub


nous pouvons aussi combiner ces deux critère c’est à dire que nous pouvons dire que la condition 1 doit être égal à daniel et que la condition deux doit être de rien ou 1234


Ce qui nous donne le code suivant.

Sub testB()
NOM = InputBox("Veuillez indiquer votre nom")
pass = InputBox("Veuillez indiquer le mot de passe")
If NOM = "daniel" And pass = "de rien" Or pass = "1234" And NOM = "daniel" Then
MsgBox "code OK"
Else
MsgBox "code invalide"
End If
End Sub




Bonne soirée
 
Dernière édition:

mvcs

XLDnaute Nouveau
Merci JBARBE, c'est ce qu'il me fallait.
J'avais essayé de combiner IF et OU et ça ne marchait pas ... forcément, c'est OR et non OU !
Quel étourdi je fais ! Je me mélange souvent les langue entre le français dans Excel et l'anglais dans Vba ...
Bonne soirée.
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, mvcs, Gardien de Phare, JBARBE

mvcs
Tu n'as pas vu passé Gardien de Phare (message#2)? :rolleyes:
Moi oui (donc je le salue au passage ;))
Et en me basant sur son exemple, je propose une variante
VB:
Sub test()
Select Case Range("A1")
Case 1, 2
MsgBox "1 ou 2", vbInformation, "Et en vrai: " & Range("A1").Text
Case Else
MsgBox "Ni 1, ni 2"
End Select
End Sub
 

JBARBE

XLDnaute Barbatruc
Bonsoir le fil, mvcs, Gardien de Phare, JBARBE

mvcs
Tu n'as pas vu passé Gardien de Phare (message#2)? :rolleyes:
Moi oui (donc je le salue au passage ;))
Et en me basant sur son exemple, je propose une variante
VB:
Sub test()
Select Case Range("A1")
Case 1, 2
MsgBox "1 ou 2", vbInformation, "Et en vrai: " & Range("A1").Text
Case Else
MsgBox "Ni 1, ni 2"
End Select
End Sub
Bonsoir Staple,
En effet, j'aurais aimé qu'il remercie aussi Gardien du Phare qui présentait une belle démonstration ( comme la tienne)!
Mon post n'était qu'une explication de cette demande que l'on pouvait trouver sur le Web !
Je vais avoir une coupure de courant car il y a une tempête chez moi !
Bonne nuit à tous !
 

mvcs

XLDnaute Nouveau
Bonjour Gardien de phare, jbarbe et staple,
Effectivement, hier soir j'ai répondu un peu vite et ai oublié de remercier jbarbe. Mille excuses.
Donc merci jbarbe pour ta solution et staple pour ta variante.
Je vais tout essayer pour m'exercer en adaptant à mon cas. Il n'y aura pas de msgbox mais le principe de base est le même.
Merci à tous et j'espère pour jbarbe que la tempête ne fut pas trop sévère.
Bonne journée.
 

JBARBE

XLDnaute Barbatruc
Bonjour Gardien de phare, jbarbe et staple,
Effectivement, hier soir j'ai répondu un peu vite et ai oublié de remercier jbarbe. Mille excuses.
Donc merci jbarbe pour ta solution et staple pour ta variante.
Je vais tout essayer pour m'exercer en adaptant à mon cas. Il n'y aura pas de msgbox mais le principe de base est le même.
Merci à tous et j'espère pour jbarbe que la tempête ne fut pas trop sévère.
Bonne journée.
Re,
Ce n'est pas moi que tu as oublié, c'est Gardien du phare !
J’espère que tu vas faire le nécessaire !
Bonne journée !
 

mvcs

XLDnaute Nouveau
ohlala, parfois on devrait m'appeler Gaston (le roi de la gaffe);) ... désolé.
Alors merci à tout le forum en général pour les services rendus mutuellement, c'est très appréciable cette solidarité.
Mais plus particulièrement pour ce fil à Gardien du phare, JBARBE et Staple 1600.
Je pense, cette fois, n'avoir oublié personne.
Cdt
 

Statistiques des forums

Discussions
312 082
Messages
2 085 167
Membres
102 801
dernier inscrit
mrclbl