Débuter avec Excel VBA – les Conditions IF AND OR Case

1
60686

Dans cette partie nous allons voir comment fonctionne les conditions dans excel vba . tout cela nous allons le voir avec un petit convertisseur de taille en code et un login tout à fait basic


1. Une condition c’est quoi ?

une condition dans excel VBAc’est comment sont nom l’indique exécuter un code quand une certaine condition est rempli. Par exemple nous allons dire que si la cellule F3 > “” alors nous allons afficher un message pour dire qu’il y a un donnée dans la cellule.

et donc en language VBA ça donne le code suivant.

IF Range(“F3”) > “” THEN
msgbox(“ il y a bien des données dans la cellule”)
END IF

ici nous commençons à poser la condition avec le code IF qui veut dire si. La nous posons la question si la cellule f3 > “” alors qui est décrit part THEN, on execute le code et on indique que le contrôle de  condition est terminé avec END IF.

à bien retenir une condition commencer toujours par un IF qui est suivi par un THEN en se termine avec un END IF sauf et je dis bien sauf si vous indiquez tout sur une ligne.

if range(“f3”)> “” then msgbox(“il y a bien des données dans la cellule”)

la il ne faut pas terminer avec un END IF.

mais je vous conseil de travailler avec une structure sur plusieurs ligne afin de garder le code plus visible.

Ce n’est pas tout nous pouvons aussi exécuter un autre code si la condition n’est pas rempli tout comme la fonction si d’Excel grace au code ELSE.

IF Range(“F3”) > “” then
msgbox(“ il n’y a bien des données dans la cellule”)
else
msgbox(“il y a pas de donnée dans la cellule”)
end if

ici nous allons afficher soit l’un sois l’autre.

2. Imbriquer des conditions

désormais nous allons voir que nous pouvons ajouter d’autre condition if dans une condition déjà existante. et vous allez voir que c’est monnaie courante dans le monde des codages.

par exemple nous allons voir si il ya une donnée dans la celle F3 nous allons contrôler s’il s’agit bien d’un chiffre et non une lettre.

donc nous allons imbriquer le code suivant

Private Sub Convert_Click()
If Range(« f3 ») > «  » Then
MsgBox (« il y a bien des données dans la cellule »)
If Not IsNumeric(Range(« f3 »)) Then
MsgBox (« le format n’est pas valide »)
Else
MsgBox (« le format est valide »)
End If  
Else
MsgBox (« il n’y a pas de donnée dans la cellule »)
End If
End Sub

donc désormais nous contrôlons la chose suivante.

si il y a des données dans F3 alors nous affichons le message il ya bien des données dans la cellule. puis nous allons contrôler si la valeur n’est pas une valeur numérique. alors nous affichons le message pour dire que le format n’et pas correcte.

par contre si c’est un format numérique alors on afficher que le format est valide.

3. multiple conditions

Tout comme la fonction SI nous pouvons crée de multiple condition afin de vérifier plusieurs condition et donc afficher le résultat selon la condition.

dans notre exemple nous allons crée une variable qui va contenir les donnée du la cellule F3 et puis nous allons voir dans quel critère il tombe et afficher le résultat voulu grace au ELSEIF

Private Sub Convert_Click()
If Range(« f3 ») > «  » Then
MsgBox (« il y a bien des données dans la cellule »)
    If Not IsNumeric(Range(« f3 »)) Then
       MsgBox (« le format n’est pas valide »)
    Else
       MsgBox (« le format est valide »)
       Dim taille As Integer      
       taille = Range(« f3 »)      
       If taille < 51 Then
           Range(« f5 ») = « S »
           ElseIf taille < 101 Then
           Range(« f5 ») = « M »
           ElseIf taille < 150 Then
           Range(« f5 ») = « L »
           Else
          Range(« f5 ») = « XL »
       End If              
    End If      
Else
MsgBox (« il n’y a pas de donnée dans la cellule »)
End If
End Sub

Regarder bien la structure du code, chaque if et end if se trouve à la meme hauteur pour la meme condition.

4. Sélectionner un cas → select case.

une autre façon de travailler avec de multiple condition est de crée des cas ou case en anglais.

la nous allons déclaré le cas

Select Case taille
           Case Is < 51
Range(« f5 ») = « S »
Case Is < 101
Range(« f5 ») = « M »
Case Is < 150
Range(« f5 ») = « L »
Case Else
Range(« f5 ») = « XL »
 End Select

ici nous pouvons voir que c’est la même chose sauf que c’est plus lisible et plus court. personnellement je préfère travailler avec les case que les ELSEIF.

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 avec une connection d’un administrateur.

IF User = “daniel” AND pass = “de rien” then
msgbox(“code valide”)
else
msgbox(“code invalide”)
end if

ici nous allons contrôler si  user à la valeur admin et que la pass à la valeur de rien. si c’est le cas nous affichant le message suivant bonjour admin. si c’est pas le cas alors nous affichons accès pas permis.

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 executer 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”

IF User = “daniel” OR pass = “de rien” then
msgbox(“code valide”)
else
msgbox(“code invalide”)
end if

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

Ce qui nous donne le code suivant.

Private Sub Login_Click()
Dim user As String
Dim pass As String
user = Range(« i9 »)
pass = Range(« i11 »)
If user = « daniel » And pass = « de rien » Or pass = « 123 » And user = « daniel » Then
MsgBox (« CODE OK »)
Else
MsgBox (« CODE INVALIDE »)
End If
End Sub

voila désormais vous savez comment utiliser les conditions dans excel VBA, dans la prochaine partie nous allons voir comment fonctionne les boucles dans Excel VBA si vous avez déjà des question à propos des boucles faite le moi savoir dans les commentaire ou sur ma page Facebook afin que je puisse les couvrir dans le prochain cours d’ici la je vous retrouve dans la prochaine partie.

1 COMMENTAIRE

  1. Bonsoir Daniel,
    Merci pour ce tuto,
    Mais je n’arrive pas exécuter la condition VBA suivante: Vérifier que l’utilisateur a saisi au moins un numéro de téléphone: portable ou fixe avec un message lui invitant à renseigner au moins champs et ensuite vérifier si les données saisies sont numérique et le nombre de caractères supérieur est ou égal à 10. Pour valider les données, les 2 champs doivent être renseignés.
    Or Je veux au moins un champ soit renseigné
    Dans cette attente

    Cordialement
    Ci-après le code

    If Trim(.Txt_Fixe_Membre.Value) = «  » And Trim(.Txt_Portable_Membre.Value) = «  » Then

    MsgBox « Veuillez saisir au moins un numéro de téléphone. », vbOKOnly + vbInformation, « Téléphone »
    .Txt_Fixe_Membre.BackColor = vbRed
    .Txt_Portable_Membre.BackColor = vbRed
    .Txt_Fixe_Membre.SetFocus

    Else
    If Len(.Txt_Fixe_Membre.Value) < 10 And Not IsNumeric(.Txt_Fixe_Membre.Value) Then

    MsgBox "Format du numéro de téléphone non valide.", vbOKOnly + vbInformation, "Téléphone Fixe"

    ElseIf Len(.Txt_Portable_Membre.Value) < 10 And Not IsNumeric(.Txt_Portable_Membre.Value) Then

    MsgBox "Format du numéro de téléphone non valide.", vbOKOnly + vbInformation, "Téléphone Portbale"

    Exit
    End If
    End If

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.