Table des matières:
- Exemple de cas de sélection
- Comme illustré dans l'exemple suivant, vous pouvez imbriquer des structures de sélection de cas. Cette routine examine la cellule active et affiche un message décrivant le contenu de la cellule. Notez que la procédure a trois structures Select Case, et chacune a sa propre instruction de fin de sélection:
Vidéo: Select Case en VBA Excel pour gérer beaucoup de conditions 2025
La structure Select Case est une structure VBA utile pour les décisions impliquant trois ou plus options dans Excel 2016 (bien qu'il fonctionne également avec deux options, fournissant une alternative à la structure If-Then-Else).
Exemple de cas de sélection
L'exemple suivant montre comment utiliser la structure Select Case:
Sub ShowDiscount3 () Dim Quantité en tant que réduction longue En tant que quantité double = InputBox ("Entrer la quantité:") Cas 0 à 24 Remise = 0. 1 Cas 25 à 49 Remise = 0. 15 Cas 50 à 74 Remise = 0. 2 Cas est> = 75 Remise = 0. 25 Fin Sélectionnez MsgBox "Remise:" & Remise Fin Sous > Dans cet exemple, la variable Quantité est en cours d'évaluation. La routine vérifie quatre cas différents (0-24, 25-49, 50-74 et 75 ou plus).
Sub ShowDiscount4 () Dim Quantité en tant que Réduction Longue Durée En Double Quantité = InputBox ("Entrer Quantité:") Sélectionner Cas Quantité Cas 0 à 24: Remise = 0. 1 Cas 25 49: Remise = 0. 15 Cas 50 à 74: Remise = 0. 2 Cas est> = 75: Remise = 0. 25 Fin Sélectionnez MsgBox "Remise:" & Remise End Sub
Lorsque VBA exécute une structure Select Case, la structure est quittée dès que VBA trouve un cas réel et exécute les instructions pour ce cas.
Comme illustré dans l'exemple suivant, vous pouvez imbriquer des structures de sélection de cas. Cette routine examine la cellule active et affiche un message décrivant le contenu de la cellule. Notez que la procédure a trois structures Select Case, et chacune a sa propre instruction de fin de sélection:
Sub CheckCell () Dim Msg As String Sélectionner un cas IsEmpty (ActiveCell) Case True Msg = "est vide. "Case Else Sélectionnez Case ActiveCell. Case HasFormula True Msg = "a une formule" Case Else Select Case IsNumeric (ActiveCell) Case True Msg = "a un nombre" Case Else Msg = "contient du texte" End Select End Select Select MsgBox "Cell" & ActiveCell. Address & "" & Msg End Sub
La logique ressemble à ceci:
-
Si ce n'est pas vide, voyez s'il contient une formule.
-
S'il n'y a pas de formule, vérifiez si elle contient une valeur numérique ou un texte.
-
Lorsque la routine se termine, la variable Msg contient une chaîne qui décrit le contenu de la cellule. La fonction MsgBox affiche ce message.
Un message affiché par la procédure CheckCell.
Si vous n'êtes toujours pas convaincu que le code d'indentation en vaut la peine, la liste précédente est un bon exemple. Les indentations permettent vraiment de rendre les niveaux de nidification plus clairs. Jetez un oeil à la même procédure sans aucune indentation:
Sub CheckCell () Dim Msg As String Sélectionner un cas IsEmpty (ActiveCell) Case True Msg = "est vide. "Case Else Sélectionnez Case ActiveCell. Case HasFormula True Msg = "a une formule" Case Else Select Case IsNumeric (ActiveCell) Case True Msg = "a un nombre" Case Else Msg = "contient du texte" End Select End Select Select MsgBox "Cell" & ActiveCell. Adresse & "" & Msg End Sub
Assez incompréhensible, hein?
