Boîtier de commutateur Excel VBA
Switch Case ou Select Case est une instruction disponible dans VBA pour effectuer des tests logiques où elle fonctionne comme une alternative à l'instruction IF-THEN dans VBA. En utilisant un Switch Case, nous pouvons effectuer plusieurs tests logiques et obtenir des résultats basés sur plusieurs résultats.
Vous trouverez ci-dessous la syntaxe de l'instruction Switch Case / Select Case.
Code:
Sélectionnez Case Case 1 Value si Case 1 Test est TRUE Case 2 Value si Case 2 Test est TRUE Case 3 Value si Case 3 Test est TRUE Case Else Value si aucun des cas ci-dessus n'est TRUE End Select
: Quel est le test logique? Nous devons entrer le test ici.
Cas 1, Cas 2: Dans chaque cas, nous devons tester plusieurs tests logiques dans Excel.
Comment utiliser la déclaration de cas de commutateur VBA?
Exemple 1
Dans la cellule A1, j'ai entré la valeur 550.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_2.png.webp)
Nous testerons ce nombre en utilisant des instructions de cas de commutation et arriverons au statut "Plus de 500" si la valeur est supérieure à 500 ou bien nous arriverons au statut "Moins de 500".
Ouvrez d'abord la procédure VBA Sub.
Code:
Sub Switch_Case () End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_3.png.webp)
Ouvrez Select Case Statement dans VBA et indiquez la plage de test logique («A2»).
Code:
Sub Switch_Case () Sélectionnez Case Range ("A2"). Value End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_4.png.webp)
Entrez maintenant le premier cas car Case est> 500.
Code:
Sub Switch_Case () Sélectionnez la plage de cas ("A2"). La valeur de cas est> 500 End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_5.png.webp)
Si ce cas est VRAI, alors quel est le résultat dont nous avons besoin dans la cellule B, 2, c'est-à-dire «Plus de 500».
Code:
Sub Switch_Case () Sélectionnez la plage de cas ("A2"). La valeur de cas est> 500 Range ("B2"). Value = "Plus de 500" End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_6.png.webp)
Il ne nous reste plus qu'un seul résultat, à savoir une instruction Case Else. Si le premier cas est FALSE, alors nous avons besoin du résultat «Moins de 500».
Code:
Sub Switch_Case () Sélectionnez la plage de cas ("A2"). La valeur de la casse est> 500 Range ("B2"). Value = "Plus de 500" Case Else Range ("B2"). Value = "Less than 500" End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_7.png.webp)
Fermez maintenant l'instruction en utilisant l'instruction «End Select».
Code:
Sub Switch_Case () Sélectionnez la plage de cas ("A2"). La valeur de la casse est> 500 Range ("B2"). Value = "Plus de 500" Case Sinon Range ("B2"). Value = "Less than 500" End Select End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_8.png.webp)
Exécutez le code, nous obtiendrons la valeur dans la cellule B2.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement.gif)
La valeur de la cellule A2 étant supérieure à 500, nous avons obtenu le résultat «Plus de 500».
Exemple # 2
Nous allons maintenant voir en utilisant plus d'exemples de cas. Ci-dessous, le score de l'étudiant à l'examen.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_9.png.webp)
Avec ce score, nous devons arriver à la note, car ci-dessous sont les critères.
- Score> = 85, Grade = "Dist"
- Score> = 60, note = "Premier"
- Score> = 50, Grade = "Second"
- Score> = 35, Note = "Réussite"
- Si quelque chose d'autre Grade = "Fail".
Code:
Sous Switch_Case1 ()
Dim Score As Integer Score = 65 Select Case Score Case Is> = 85 MsgBox "Dist" Case Is> = 60 MsgBox "First" Case Is> = 50 MsgBox "Second" Case Is> = 35 MsgBox "Pass" Case Else MsgBox " Échec "End Select End Sub
Exécutez ce code. Nous obtiendrons la note dans la boîte de message.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_2.gif)
Since the score is more than 60 but less than 85 grade is “First.”
Example #3
We have seen how to find a grade for one student, what about finding a grade for more than one student. Below are the scores of students.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_10.png.webp)
Since more than one student is involved, we need to enclose FOR NEXT loop in VBA. Below is the VBA code.
Code:
Sub Switch_Case2() Dim k As Integer For k = 2 To 7 Select Case Cells(k, 2).Value Case Is>= 85 Cells(k, 3).Value = "Dist" Case Is>= 60 Cells(k, 3).Value = "First" Case Is>= 50 Cells(k, 3).Value = "Second" Case Is>= 35 Cells(k, 3).Value = "Pass" Case Else Cells(k, 3).Value = "Fail" End Select Next k End Sub
Run this code. We will get grades.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_3.gif)
Things to Remember
- Switch Case is often referred to as “Select Case.”
- The switch is a function, not a statement.
- Si aucun test logique n'est VRAI, alors vous pouvez simplement passer le résultat alternatif dans l'instruction CASE ELSE et toujours fermer l'instruction avec le mot «END SELECT».