Comment utiliser If-Then dans Excel 2016 VBA

If-Then est la structure de contrôle la plus importante de VBA. Vous utiliserez probablement cette commande quotidiennement. Utilisez la structure If-Then lorsque vous souhaitez exécuter une ou plusieurs instructions de manière conditionnelle. La clause Else facultative, si elle est incluse, vous permet d'exécuter une ou plusieurs instructions si la condition que vous testez n'est pas vraie. Voici une procédure CheckUser simple, recodée pour utiliser la structure If-Then-Else :

Sous-CheckUser2()
  Nom d'utilisateur = InputBox(« Entrez votre nom : »)
  Si Nom d'utilisateur = "Satya Nadella" Alors
    MsgBox (« Bienvenue Satya… »)
' …[Plus de code ici] …
  Autre
    MsgBox "Désolé. Seul Satya Nadella peut gérer cela.
  Fin si
Fin du sous-marin

Exemples Si-Alors

La routine suivante illustre la structure If-Then sans la clause Else facultative :

Sous GreetMe()
  Si Temps < 0,5 Alors MsgBox "Bonjour"
Fin du sous-marin

La procédure GreetMe utilise la fonction Time de VBA pour obtenir l'heure du système. Si l'heure actuelle est inférieure à 0,5, la routine affiche un message d'accueil amical. Si Time est supérieur ou égal à 0,5, la routine se termine et rien ne se passe.

Pour afficher un message d'accueil différent si Time est supérieur ou égal à 0,5, vous pouvez ajouter une autre instruction If-Then après la première :

Sous GreetMe2()
  Si Temps < 0,5 Alors MsgBox "Bonjour"
  Si Heure >= 0.5 Alors MsgBox "Bon après-midi"
Fin du sous-marin

Notez que >= (supérieur ou égal à) est utilisé pour la deuxième instruction If-Then. Cela garantit que toute la journée est couverte. Si > (supérieur à) avait été utilisé, aucun message n'apparaîtrait si cette procédure était exécutée précisément à 12h00. C'est assez peu probable, mais avec un programme important comme celui-ci, vous ne voulez prendre aucun risque.

Un exemple If-Then-Else

Une autre approche du problème précédent utilise la clause Else. Voici la même routine recodée pour utiliser la structure If-Then-Else :

Sous GreetMe3()
  Si Heure < 0,5 Alors MsgBox "Bonjour" Sinon _
    MsgBox "Bon après-midi"
Fin du sous-marin

Notez que le caractère de continuation de ligne (trait de soulignement) est utilisé dans l'exemple précédent. L'instruction If-Then-Else est en fait une instruction unique. VBA fournit une manière légèrement différente de coder les constructions If-Then-Else qui utilisent une instruction End If. Par conséquent, la procédure GreetMe peut être réécrite comme

Sous GreetMe4()
  Si Temps < 0,5 Alors
    MsgBox "Bonjour"
  Autre
    MsgBox "Bon après-midi"
  Fin si
Fin du sous-marin

En fait, vous pouvez insérer n'importe quel nombre d'instructions sous la partie If et n'importe quel nombre d'instructions sous la partie Else. Cette syntaxe est plus facile à lire et raccourcit les instructions.

Et si vous avez besoin d'étendre la routine GreetMe pour gérer trois conditions : matin, après-midi et soir ? Vous avez deux options : utilisez trois instructions If-Then ou utilisez une structure If-Then-Else imbriquée . L'imbrication signifie placer une structure If-Then-Else dans une autre structure If-Then-Else. La première approche, utilisant trois instructions If-Then, est plus simple :

Sous GreetMe5()
 Dim Msg en tant que chaîne
 Si Heure < 0,5 Alors Msg = « Matin »
 Si Heure >= 0,5 Et Heure < 0,75 Alors Msg = « Après-midi »
 Si Heure >= 0,75 Alors Msg = "Soir"
 MsgBox « Bon » & Msg
Fin du sous-marin

Une nouvelle tournure a été ajoutée avec l'utilisation d'une variable. La variable Msg obtient une valeur de texte différente, selon l'heure de la journée. L'instruction MsgBox affiche le message d'accueil : Good Morning, Good Afternoon ou Good Evening.

La routine suivante exécute la même action mais utilise une structure If-Then-End If :

Sous GreetMe6()
  Dim Msg en tant que chaîne
  Si Temps < 0,5 Alors
    Msg = "Matin"
  Fin si
  Si Temps >= 0.5 Et Temps < 0.75 Alors
    Msg = "Après-midi"
  Fin si
  Si Temps >= 0,75 Alors
    Msg = "Soir"
  Fin si
  MsgBox « Bon » & Msg
Fin du sous-marin

Utiliser ElseIf

Dans les exemples précédents, chaque instruction de la routine est exécutée. Une structure légèrement plus efficace quitterait la routine dès qu'une condition serait vérifiée. Le matin, par exemple, la procédure devrait afficher le message Good Morning puis se terminer — sans évaluer les autres conditions superflues.

Avec une petite routine comme celle-ci, vous n'avez pas à vous soucier de la vitesse d'exécution. Mais pour les applications plus importantes dans lesquelles la vitesse est critique, vous devez connaître une autre syntaxe pour la structure If-Then.

Voici comment vous pouvez réécrire la routine GreetMe en utilisant cette syntaxe :

Sous GreetMe7()
 Dim Msg en tant que chaîne
 Si Temps < 0,5 Alors
   Msg = "Matin"
 Sinon si temps >= 0,5 et temps < 0,75 alors
   Msg = "Après-midi"
 Autre
   Msg = "Soir"
 Fin si
 MsgBox « Bon » & Msg
Fin du sous-marin

Lorsqu'une condition est vraie, VBA exécute les instructions conditionnelles et la structure If se termine. En d'autres termes, cette procédure est un peu plus efficace que les exemples précédents. Le compromis est que le code est plus difficile à comprendre.

Un autre exemple Si-Alors

Voici un autre exemple qui utilise la forme simple de la structure If-Then. Cette procédure invite l'utilisateur à indiquer une quantité, puis affiche la remise appropriée, en fonction de la quantité saisie par l'utilisateur :

Sous ShowDiscount()
  Dim Quantité aussi longtemps
  Dim Remise en tant que double
  Quantité = InputBox(« Entrez la quantité : »)
  Si Quantité > 0 Alors Remise = 0,1
  Si Quantité >= 25 Alors Remise = 0,15
  Si Quantité >= 50 Alors Remise = 0,2
  Si Quantité >= 75 Alors Remise = 0,25
  MsgBox « Remise : » & Remise
Fin du sous-marin

Notez que chaque instruction If-Then de cette routine est exécutée et que la valeur de Discount peut changer au fur et à mesure de l'exécution des instructions. Cependant, la routine affiche finalement la valeur correcte pour Discount car les instructions If-Then sont dans l'ordre croissant des valeurs Discount.

La procédure suivante effectue les mêmes tâches en utilisant la syntaxe ElseIf alternative. Dans ce cas, la routine se termine immédiatement après l'exécution des instructions pour une condition vraie :

Sous ShowDiscount2()
 Dim Quantité aussi longtemps
 Dim Remise en tant que double
 Quantité = InputBox ("Entrez la quantité : ")
 Si Quantité > 0 Et Quantité < 25 Alors
  Remise = 0,1
 Sinon si quantité >= 25 et quantité < 50 alors
  Remise = 0,15
 Sinon si quantité >= 50 et quantité < 75 alors
  Remise = 0,2
 Sinon si quantité >= 75 alors
  Remise = 0,25
 Fin si
 MsgBox « Remise : » & Remise
Fin du sous-marin

Ces multiples structures If-Then sont assez lourdes. Vous pouvez utiliser la structure If-Then uniquement pour des décisions binaires simples.

Leave a Comment

Comment définir les options de vérification linguistique de Word 2010

Comment définir les options de vérification linguistique de Word 2010

Découvrez comment configurer les options de vérification linguistique dans Word 2010 pour améliorer votre rédaction et éviter les erreurs.

Comment utiliser la fonction CONFIANCE dans Excel

Comment utiliser la fonction CONFIANCE dans Excel

Découvrez comment utiliser les fonctions CONFIDENCE.NORM et CONFIDENCE.T dans Excel pour calculer des intervalles de confiance pour les moyennes de population, améliorant ainsi la prise de décision basée sur des données.

Formater les nombres en milliers et en millions dans les rapports Excel

Formater les nombres en milliers et en millions dans les rapports Excel

Améliorez la lisibilité de vos rapports Excel en formatant vos chiffres en milliers ou millions avec des astuces simples et efficaces pour votre audience.

Comment personnaliser vos étiquettes de données de graphique croisé dynamique Excel

Comment personnaliser vos étiquettes de données de graphique croisé dynamique Excel

Apprenez comment personnaliser vos étiquettes de données dans Excel pour un meilleur rapport. Utilisez les valeurs de votre tableau croisé dynamique efficacement.

Comment créer une application Web Access

Comment créer une application Web Access

Découvrez comment créer une application Web dans Access 2016. Apprenez les étapes essentielles pour développer votre application en ligne facilement.

Comment utiliser les commentaires dans Microsoft Word 2019

Comment utiliser les commentaires dans Microsoft Word 2019

Découvrez comment ajouter, répondre, afficher et supprimer des <strong>commentaires dans Microsoft Word</strong> 2019 pour optimiser votre collaboration.

Feuille intelligente 9.1.1

Feuille intelligente 9.1.1

Smartsheet est une plateforme de travail dynamique qui vous permet de gérer des projets, de créer des flux de travail et de collaborer avec votre équipe.

SharePoint

SharePoint

SharePoint est un système de collaboration basé sur le Web qui utilise une variété d'applications de flux de travail, des bases de données de « liste » et d'autres composants Web, ainsi que des fonctionnalités de sécurité pour donner le contrôle aux groupes professionnels qui travaillent ensemble.

Calendrier perpétuel 1.0.38/1.0.36

Calendrier perpétuel 1.0.38/1.0.36

Van Nien Calendar est une application d'affichage de calendrier sur votre téléphone, vous aidant à voir rapidement la date luni-solaire sur votre téléphone, organisant ainsi votre travail important.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook est une application commerciale et de productivité développée par Microsoft Corporation.