Excel VBA Select Case Statement – Expliqué avec des exemples

Excel VBA a la construction IF Then Else que vous pouvez utiliser pour analyser plusieurs conditions et exécuter des codes basé sur ces conditions.

Une autre construction similaire qui vous permet de vérifier plusieurs conditions est l’instruction SELECT CASE.

Select Case est utile lorsque vous avez trois conditions ou plus que vous voulez vérifier. Vous pouvez également l’utiliser avec deux conditions (mais je pense que If Then Else est plus facile à utiliser dans ces cas).

Un exemple simple où l’instruction Select Case est utile lorsque vous voulez obtenir la note d’un l’étudiant en fonction des notes qu’il / elle a obtenues (traitées à titre d’exemple plus loin dans ce didacticiel).

Remarque: tous les exemples de codes traités dans ce didacticiel sont destinés à être placés dans un module de VBA.

Ce tutoriel couvre:

Sélectionnez la syntaxe de cas

Voici la syntaxe de Select Case dans Excel VBA:

Select Case Test_ExpressionCase Value_1Code Block when Test_Expression = Value_1Case Value_2Code Block when Test_Expression = Value_2Case Value_3Code Block when Test_Expression = Value_3Case ElseCode Block when none of the case conditions are metEnd Select
  • Test_Expression: C’est l’expression dont nous analysons la valeur en utilisant différents cas (mieux expliqué avec les exemples ci-dessous).
  • Condition_1, Condition_2,…: Ce sont les conditions sur lesquelles l’expression textuelle est testée. S’il remplit la condition, alors le bloc de code pour la condition donnée est exécuté.

Pour chaque instruction Select Case que vous utilisez, vous devez utiliser l’instruction End Select.

Remarque: dès qu’une condition est remplie, VBA quitte la construction de sélection de cas. Donc, si vous avez cinq conditions et que la deuxième condition est remplie, VBA quittera Select Case – et le reste des conditions ne sera pas testé.

Sélectionnez des exemples de cas

Maintenant, pour mieux comprendre comment utiliser l’instruction Select Case dans VBA, passons en revue quelques exemples.

Notez que la plupart des exemples de ce didacticiel sont destinés à expliquer le concept. Celles-ci peuvent ou non être la meilleure façon de faire le travail.

Commençons par un exemple simple de voir comment Select Case nous permet de vérifier les conditions.

Exemple 1 – Vérifiez les nombres

Dans l’exemple ci-dessous, le code demande à l’utilisateur d’entrer n’importe quel nombre entre 1 et 5, puis affiche une boîte de message avec le numéro entré par l’utilisateur.

Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number between 1 and 5")Select Case UserInputCase 1MsgBox "You entered 1"Case 2MsgBox "You entered 2"Case 3MsgBox "You entered 3"Case 4MsgBox "You entered 4"Case 5MsgBox "You entered 5"End SelectEnd Sub

Notez que ce code est loin d’être utile et n’est même pas infaillible. Par exemple, si vous entrez 6 ou n’importe quelle chaîne, cela ne ferait rien. Mais comme je l’ai mentionné, mon intention ici est de montrer comment fonctionne Select Case.

Exemple 2 – Utilisation de Select Case avec une condition IS

Vous pouvez utiliser une condition IS avec la construction Select Case pour vérifier la valeur des nombres.

Le code ci-dessous vérifie si le nombre d’entrée est supérieur ou non à 100.

Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number")Select Case UserInputCase Is < 100MsgBox "You entered a number less than 100"Case Is >= 100MsgBox "You entered a number more than (or equal to) 100"End SelectEnd Sub

Exemple 3 – Utiliser le cas contraire pour tout attraper

Dans l’exemple ci-dessus, j’ai utilisé deux conditions (inférieures à 100 ou supérieures ou égales à 100).

Au lieu du deuxième cas avec une condition, vous pouvez également utiliser Case Else.

Case Else agit comme un fourre-tout et tout ce qui ne relève d’aucun des cas précédents est traité par le Case Else.

Voici un exemple de code où j’ai utilisé le cas contraire:

Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number")Select Case UserInputCase Is < 100MsgBox "You entered a number less than 100"Case ElseMsgBox "You entered a number more than (or equal to) 100"End SelectEnd Sub

Exemple 4 – Utilisation d’une plage de nombres

Dans Select Cas, vous pouvez également vérifier une plage de nombres.

Le code ci-dessous demande une entrée et affiche une boîte de message basée sur la valeur.

Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number between 1 and 100")Select Case UserInputCase 1 To 25MsgBox "You entered a number less than 25"Case 26 To 50MsgBox "You entered a number between 26 and 50"Case 51 To 75MsgBox "You entered a number between 51 and 75"Case 75 To 100MsgBox "You entered a number more than 75"End SelectEnd Sub

Exemple 5 – Obtenir la note en fonction des notes notées

Jusqu’à présent, nous avons vu des exemples basiques (qui ne sont pas vraiment utiles dans le monde pratique).

Voici un exemple qui est plus proche d’un exemple réel où vous pouvez utiliser Select Case dans Excel VBA.

Le code suivant vous donnera la note qu’un élève obtient en fonction les notes d’un examen.

Le code ci-dessus demande les notes à l’utilisateur et, sur la base de celui-ci, affiche une boîte de message avec la note finale.

Dans le code ci-dessus, j’ai spécifié toutes les conditions – pour les notes 0 à 100.

Une autre façon d’utiliser Select Case est d’utiliser un Case Else à la fin. Ceci est utile lorsque vous avez pris en compte toutes les conditions et que vous spécifiez ensuite quoi faire lorsqu’aucune des conditions n’est remplie.

Le code ci-dessous est une variante du code de note avec un changement mineur. En fin de compte, il a une instruction Case else, qui sera exécutée lorsqu’aucune des conditions ci-dessus n’est vraie.

Exemple 6 – Création d’une fonction personnalisée (UDF) en utilisant Select Case

Dans l’exemple ci-dessus, le code a demandé à l’utilisateur la saisie des marques.

Vous pouvez également créer une fonction personnalisée (fonction définie par l’utilisateur) qui peut être utilisée comme n’importe quelle fonction de feuille de calcul classique, et qui retournera la note des élèves.

Voici le code qui créera la formule personnalisée:

Function GetGrade(StudentMarks As Integer)Dim FinalGrade As StringSelect Case StudentMarksCase Is < 33FinalGrade = "F"Case 33 To 50FinalGrade = "E"Case 51 To 60FinalGrade = "D"Case 60 To 70FinalGrade = "C"Case 70 To 90FinalGrade = "B"Case ElseFinalGrade = "A"End SelectGetGrade = FinalGradeEnd Function

Une fois que vous avez ce code dans le module, vous pouvez utiliser la fonction GetGrade dans la feuille de calcul comme indiqué ci-dessous.

Exemple 7 – Vérifier ODD / EVEN avec Select Case

Voici un exemple de code où je vérifier si le nombre de la cellule A1 est pair ou impair.

Exemple 8 – Vérification des jours de semaine / week-end (conditions multiples)

Vous pouvez également utiliser Sélectionner la casse pour vérifier plusieurs valeurs dans le même cas.

Par exemple, le code ci-dessous utilise la date du jour pour indiquer si aujourd’hui est un jour de semaine ou un week-end (où les jours de week-end sont samedi et dimanche)

Sub CheckWeekday()Select Case Weekday(Now)Case 1, 7MsgBox "Today is a Weekend"Case ElseMsgBox "Today is a Weekday"End SelectEnd Sub

Dans le code ci-dessus, nous vérifions deux conditions (1 et 7) dans le même cas.

Remarque: la fonction jour de la semaine renvoie 1 pour dimanche et 7 pour samedi.

Exemple 9 – Instructions Select Case imbriquées

Vous pouvez également imbriquer une instruction Select Case dans une autre.

Voici un code qui vérifie si un jour est un jour de semaine ou un week-end, et si c’est un week-end, alors il s’affichera si c’est un samedi ou un dimanche.

Sub CheckWeekday()Select Case Weekday(Now)Case 1, 7 Select Case Weekday(Now) Case 1 MsgBox "Today is Sunday" Case Else MsgBox "Today is Saturday" End SelectCase ElseMsgBox "Today is a Weekday"End SelectEnd Sub

Dans le code ci-dessus, J’ai imbriqué le cas de sélection pour vérifier si le week-end est un samedi ou un dimanche.

Remarque: l’exemple ci-dessus est pour expliquer le concept. Ce n’est pas le moyen le meilleur ni le plus pratique pour connaître les jours de semaine / week-end.

Exemple 10 – Vérification de la chaîne de texte avec Select Case

Vous pouvez vérifier des chaînes spécifiques en utilisant Select Case, puis exécuter le code en fonction de celui-ci.

Dans l’exemple de code ci-dessous, il demande à l’utilisateur d’entrer le nom de son service et affiche le nom de la personne avec laquelle il doit se connecter pour l’intégration.

Sub OnboardConnect()Dim Department As StringDepartment = InputBox("Enter Your Department Name")Select Case DepartmentCase "Marketing"MsgBox "Please connect with Bob Raines for Onboarding"Case "Finance"MsgBox "Please connect with Patricia Cruz for Onboarding"Case "HR"MsgBox "Please connect with Oliver Rand for Onboarding"Case "Admin"MsgBox "Please connect with Helen Hume for Onboarding"Case ElseMsgBox "Please connect with Tony Randall for Onboarding"End SelectEnd Sub

J’espère que tous les exemples ci-dessus ont été utiles pour comprendre le concept et l’application de Select Case dans Excel VBA.

Vous pouvez également aimer les didacticiels VBA suivants:

  • Boucles Excel VBA – Pour ensuite, faire pendant, jusqu’à, pour chaque.
  • Pour la boucle suivante dans Excel VBA.
  • Comment enregistrer une macro dans Excel.

Write a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *