Instructions If multiples (imbriquées) VBA

Ce tutoriel vous montrera comment utiliser les instructions If imbriquées dans VBA

Si les déclarations vous permettent de tester une seule condition dans VBA pour voir si la condition est vraie ou fausse, et selon la réponse, le code se déplacera dans le sens de la déclaration vraie ou de la déclaration fausse.

Une seule instruction IF

1234567891011 Sous TestSiDim x en tant qu'entierx = 10Si x = 10 alors'si x vaut 10, la condition est vraieMsgBox x est 10"Autre'si x n'est pas 10, la condition est fausseMsgbox "x n'est pas 10"Fin siFin du sous-marin

Les FI imbriqués expliqués

Un If imbriqué vous permet de mettre plusieurs conditions À L'INTÉRIEUR de chacune des déclarations True et/ou False du If d'origine.

1234567891011121314151617181920212223242526 Sous-testNestedIf()Dim x en tant qu'entierDim y comme entierDim z comme entierx = 10y = 9z = 8Si x = 10 alors'si x vaut 10, la condition est vraie donc testez ySi y = 8 alorsMsgBox "y est 9"Autre'si y n'est pas 10, la condition est fausseMsgbox "y n'est pas 9"Fin siAutre'si x n'est pas 10 alors la condition est fausse, alors testons zSi z = 8alorsMsgBox "z est 8"Autre'si z n'est pas 8, la condition est fausseMsgbox "z n'est pas 10"Fin si'un autre End If est nécessaire pour fermer l'original siFin siFin du sous-marin

Indenter votre code lorsque vous l'écrivez est toujours une bonne pratique car cela rend le code facile à lire et à suivre lorsque vous devez y revenir à un moment donné, ou lorsqu'un autre programmeur doit le lire.

Nous pourrions également créer une fonction conçue par l'utilisateur (UDF) et appeler les valeurs de certaines cellules d'Excel dans la fonction à l'aide de paramètres.

1234567891011121314151617181920 Fonction GetIf(x comme entier, y comme entier, z comme entier) comme chaîneSi x = 10 alors'si x vaut 10, la condition est vraie donc testez ySi y = 8 alorsGetIf= "y est 9"Autre'si y n'est pas 10, la condition est fausseGetIf="y n'est pas 9"Fin siAutre'si x n'est pas 10 alors la condition est fausse, alors testons zSi z = 8 alorsGetIf="z est 8"Autre'si z n'est pas 8, la condition est fausseGetIf="z n'est pas 10"Fin si'un autre End If est nécessaire pour fermer l'original siFin siFonction de fin

Imbriqué Si Exemple Pratique

Considérez la fonction suivante :

12345678910111213141516171819202122 Fonction GetDiscount(dblPrice As Double) As DoubleSi dblPrice >= 1000 Alors'si le prix est supérieur à 1000, attribuez une remiseSi dblPrice >= 2000 Alors'si supérieur à 2000, donner 10% de réductionGetDiscount = dblPrix * 0,1Autre'sinon donner 5% de réductionGetDiscount = dblPrix * 0,05Fin si'si le prix n'est pas supérieur à 1000Autre'si supérieur à 500, accordez une remise de 2,5%Si dblPrice >= 500 AlorsGetDiscount = dblPrice * 0,025Autre'sinon pas de remiseObtenirRéduction = 0Fin si'un autre End If est nécessaire pour fermer l'original siFin siFonction de fin

En utilisant cette fonction dans une feuille Excel, nous pouvons tester pour voir le prix total d'une commande et appliquer différentes remises en fonction de ce total.

Programmation VBA | Le générateur de code fonctionne pour vous !

Utiliser ElseIf

ElseIf nous permet de simplifier votre code car il n'est descendu à la seconde instruction if que si la première renvoie un faux.

12345678910111213141516 Fonction GetDiscount(dblPrice As Double) As Double'utiliser else if pour réduire l'écriture de codeSi dblPrice >= 2000 AlorsGetDiscount = dblPrix * 0,1Sinon si dblPrice >= 1000 AlorsGetDiscount = dblPrix * 0,075Sinon si dblPrice >= 500 AlorsGetDiscount = dblPrix * 0,05Sinon si dblPrice >= 200 AlorsGetDiscount = dblPrix * 0,025Sinon si dblPrice >= 100 AlorsGetDiscount = dblPrice * 0.01AutreObtenirRéduction = 0Fin siFonction de fin

Utilisation d'un énoncé de cas

Nous pouvons également utiliser une déclaration de cas pour obtenir le même effet.

1234567891011121314151617 Fonction GetDiscount(dblPrice As Double) As DoubleSélectionnez le cas dblPrix'cette déclaration de cas a 6 niveaux de remise différentsLe cas est >= 2000GetDiscount = dblPrix * 0,1Le cas est >= 1000GetDiscount = dblPrix * 0,075Cas Est >= 500GetDiscount = dblPrix * 0,05Cas Est >= 200GetDiscount = dblPrice * 0,025Cas Est >= 100GetDiscount = dblPrice * 0.01Cas autreObtenirRéduction = 0Fin de la sélectionFonction de fin

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave