Accueil Médias sociaux Comment utiliser If-Then dans Excel 2016 VBA - dummies

Comment utiliser If-Then dans Excel 2016 VBA - dummies

Table des matières:

Vidéo: VBA 3 : Structure test VBA Excel : If Then et Select case 2025

Vidéo: VBA 3 : Structure test VBA Excel : If Then et Select case 2025
Anonim

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 est et non vraie. Voici une procédure CheckUser simple, recodée pour utiliser la structure If-Then-Else:

Sub CheckUser2 () UserName = InputBox ("Entrez votre nom:") Si UserName = "Satya Nadella" Puis MsgBox ("Bienvenue Satya …") '… [Plus de code ici] … Else MsgBox "Pardon. Seul Satya Nadella peut le faire. "Fin si End Sub

exemples If-Then

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

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

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

Sub GreetMe2 () Si Time = 0. 5 Puis MsgBox "Good Afternoon" End Sub

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> (plus grand que) était utilisé, aucun message n'apparaîtrait si cette procédure était exécutée précisément à 12h00. C'est assez improbable, mais avec un programme important comme celui-ci, vous ne voulez pas prendre de risques.

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:

Sub GreetMe3 () Si Time <0. 5 alors MsgBox "Good Morning" Sinon _ MsgBox "Good Afternoon" End Sub

Notez que la ligne le caractère de continuation (underscore) est utilisé dans l'exemple précédent. L'instruction If-Then-Else est en fait une seule instruction. 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

Sub GreetMe4 () Si Time <0. 5 alors MsgBox "Good Morning" Else MsgBox "Bon après-midi" End If End Sub
En fait, vous pouvez insérer n'importe quel nombre d'instructions sous le Si partie et n'importe quel nombre de déclarations sous la partie Else. Cette syntaxe est plus facile à lire et raccourcit les instructions.

Et si vous deviez développer 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 . Imbrication signifie placer une structure If-Then-Else dans une autre structure If-Then-Else. La première approche, en utilisant trois instructions If-Then, est plus simple: Sub GreetMe5 () Dim Msg As String Si Time = 0. 5 Et Time = 0. 75 Ensuite Msg = "Soir" MsgBox "Good" & Msg End Sous

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

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

Sub GreetMe6 () Dim Msg As String Si Time = 0. 5 Et Time = 0. 75 Ensuite Msg = "Evening" End If MsgBox "Good" & Msg End Sub

Utiliser ElseIf

Dans les exemples précédents, chaque instruction de la routine est exécutée. Une structure légèrement plus efficace sortirait de la routine dès qu'une condition serait vraie. Le matin, par exemple, la procédure devrait afficher le message Good Morning, puis quitter - 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 devriez connaître une autre syntaxe pour la structure If-Then.

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

Sub GreetMe7 () Dim Msg As String Si Time = 0. 5 Et Time <0.75 alors Msg = "Afternoon" Sinon Msg = "Soir "End If MsgBox" Good "& Msg End Sub

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 If-Then

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

Sub ShowDiscount () Dim Quantité en tant que réduction longue En tant que quantité double = InputBox ("Entrer la quantité:") Si Quantité > 0 Puis Remise = 0. 1 Si Quantité> = 25 Puis Remise = 0. 15 Si Quantité> = 50 Puis Remise = 0. 2 Si Quantité> = 75 Puis Remise = 0. 25 MsgBox "Remise:" & Remise Fin Sous

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 que les instructions sont exécutées. Toutefois, la routine affiche en fin de compte la valeur correcte pour Remise parce que 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:

Sub ShowDiscount2 () Dim Quantité en tant que réduction longue En tant que quantité double = InputBox ("Enter Quantity:") Si Quantité> 0 et Quantité <25 alors Discount = 0.1 ElseIf Quantité> = 25 Et Quantité <50 puis Remise = 0. 15 ElseIf Quantité> = 50 Et Quantité <75 puis Remise = 0. 2 ElseIf Quantité> = 75 Puis Remise = 0. 25 Fin Si MsgBox "Remise:" & Discount End Sub

Ces multiples structures If-Then sont plutôt lourdes. Vous pouvez utiliser la structure If-Then uniquement pour les décisions binaires simples.
Comment utiliser If-Then dans Excel 2016 VBA - dummies

Le choix des éditeurs

Comment adapter les normes journalistiques aux blogs de maman - Les nuls

Comment adapter les normes journalistiques aux blogs de maman - Les nuls

Alors que les standards journalistiques sont légèrement différents Diffusion, et les organisations en ligne, ils partagent des éléments communs de véracité, la précision, l'objectivité, l'impartialité, l'équité et la responsabilité publique (c'est une citation adaptée de Wikipedia). Surtout, les standards journalistiques établissent une séparation entre les départements qui génèrent des revenus (ventes de publicité et de sponsoring) et les départements qui développent ...

Comment accepter les commentaires des membres de la communauté en ligne - mannequins

Comment accepter les commentaires des membres de la communauté en ligne - mannequins

Comme gestionnaire de communauté en ligne, vous ne pouvez pas avoir peur pour demander des commentaires parce que vous ne voulez pas entendre de mauvaises nouvelles. La réalité est qu'il n'y a pas de mauvaises réactions. Pourtant, lorsque les commentaires négatifs viennent, parfois vous ne pouvez pas vous empêcher de le prendre personnellement. Vous passez tellement de temps à cultiver votre communauté et à promouvoir ...

Comment ajouter NoFollow Tag - mannequins

Comment ajouter NoFollow Tag - mannequins

La balise NoFollow a été créée comme un moyen de divulguer aux moteurs de recherche que, bien que votre site de blogging maman ajoute un lien vers une destination particulière, il n'approuve pas le site de destination. Initialement utilisé pour les commentaires de blog pour lutter contre les spams de commentaires, il protégeait les blogs de se connecter par inadvertance aux ...

Le choix des éditeurs

Ce qu'il faut faire et ne pas faire pour vos tableaux de bord et rapports Excel - les nuls

Ce qu'il faut faire et ne pas faire pour vos tableaux de bord et rapports Excel - les nuls

Les concepts les plus courants utilisés dans les tableaux de bord et les rapports Excel sont le concept de tendances. Une tendance est une mesure de la variance sur un intervalle défini, généralement des périodes telles que des jours, des mois ou des années. Mais construire des composants tendance pour vos tableaux de bord a quelques choses à faire et à ne pas faire. Utilisez les types de graphiques appropriés pour ...

Emplacements de confiance et macros Excel - mannequins

Emplacements de confiance et macros Excel - mannequins

Si l'idée d'un message Macro Excel à venir (même une fois) désorganise vous, configurez un emplacement de confiance pour vos fichiers. Un emplacement approuvé est un répertoire considéré comme une zone sûre dans laquelle seuls les classeurs approuvés sont placés. Un emplacement de confiance vous permet, à vous et à vos clients, d'exécuter un classeur compatible avec les ...

Transformez une colonne de données en deux dans Excel 2016 - des nuls

Transformez une colonne de données en deux dans Excel 2016 - des nuls

Dans une feuille Excel 2016 que vous devez transformer une colonne de données en deux colonnes. Dans le cas des noms, par exemple, il peut être nécessaire de transformer une colonne de noms en deux colonnes, l'une appelée prénom et l'autre nom de famille. Suivez ces étapes dans un fichier Excel ...

Le choix des éditeurs

Dix domaines à couvrir avec les fournisseurs d'entrepôts de données - les nuls

Dix domaines à couvrir avec les fournisseurs d'entrepôts de données - les nuls

Sont dix domaines que vous devriez Discutez avec n'importe quel fournisseur de produits d'entreposage de données, quelle que soit la catégorie de produit (outil d'aide à la décision, outil de middleware ou SGBDR, par exemple) que vous envisagez d'acheter. Il y a aussi une question spécifique que vous pourriez vouloir poser. Toutes ces questions sont quelque peu bizarres car elles ont peu à voir avec ...

L'avenir des entrepôts de données à l'ère du Big Data - mannequins

L'avenir des entrepôts de données à l'ère du Big Data - mannequins

Commencé à changer et à évoluer avec l'avènement du Big Data. Dans le passé, il n'était tout simplement pas rentable pour les entreprises de stocker l'énorme quantité de données provenant d'un grand nombre de systèmes d'enregistrement. Le manque d'architectures de calcul réparties rentables et pratiques a fait que les données ...

Les catégories principales de Business Intelligence - les nuls

Les catégories principales de Business Intelligence - les nuls

Au début de votre projet d'entreposage de données, ne vous concentrez pas sur le type d'outils dont vous avez besoin - pour le moment. Au lieu de cela, concentrez-vous sur les types de questions que les utilisateurs poseront concernant le contenu de l'entrepôt de données, les types de rapports qui seront exécutés et à quelles fins, et les modèles généraux de traitement qui ...