eval (ez_write_tag ([[468,60], « sourcedaddy_com-box-3 », « ezslot_1 », 102, « 0 », « 0 »])); Utilisation l’instruction Select Case
MS-Excel / Formatage général
Effectuer plusieurs tests avec If … ElseIf est une technique pratique – c’est un outil VBA que vous utiliserez assez souvent. Cependant, cela devient rapidement compliqué à mesure que le nombre de tests que vous devez effectuer augmente. C’est correct pour deux ou trois tests, mais pas plus que cela rend la logique plus difficile à suivre.
Pour ces situations, l’instruction Select Case de VBA est un meilleur choix. L’idée est de fournir une expression logique au début, puis de lister une série de résultats possibles. Pour chaque résultat possible – appelé cas – vous fournissez une ou plusieurs instructions VBA à exécuter si le cas s’avère vrai. Voici la syntaxe:
Select Case TestExpression Case FirstCaseList Case SecondCaseList <etc> Case Else End Select
TestExpression
Cette expression est évaluée au début de la structure. Elle doit renvoyer une valeur (logique, numérique, chaîne, etc.).
CaseList
Une liste d’un ou plusieurs résultats possibles pour TestExpression. Ces résultats sont des valeurs ou des expressions séparées par des virgules.VBA examine chaque élément dans le list pour voir si l’une correspond à TestExpression. Les expressions peuvent prendre n’importe laquelle des formes suivantes:ExpressionExpression To ExpressionIs LogicalOperator ExpressionLe mot clé To définit une plage de valeurs (par exemple, 1 à 10) . Le mot clé Is définit une plage de valeurs ouverte (par exemple, Is > = 100).
Instructions
Voici les instructions exécutées par VBA si une partie de la CaseList associée correspond à TestExpression. VBA exécute les ElseStatements optionnels si aucune CaseList ne contient de correspondance pour TestExpression.
Remarque: Si plusieurs CaseList contiennent un élément qui correspond TestExpression, VBA exécutent uniquement les instructions associées à la CaseList qui apparaît en premier dans la structure Select Case.
La liste montre comment vous utiliseriez Select Case pour gérer le problème de l’argument Frequency.
Une procédure qui utilise Sélectionnez un cas pour tester plusieurs valeurs Un exemple de cas sélectionné: Conversion des scores de test en notes alphabétiques
Pour vous aider à mieux comprendre l’instruction Select Case, jetons un coup d’œil à un autre exemple qui met mieux en valeur les talents uniques de ce puissant structure. Supposons que vous souhaitiez écrire une procédure qui convertit un résultat de test brut en une note en lettre selon le tableau suivant:
Score brut | Note par lettre |
90 et plus | A |
Entre 80 et 89 | B |
Entre 70 et 79 | C |
Entre 60 et 69 | D |
Moins de 60 | F |
La liste montre la procédure LetterGrade, qui utilise une instruction Select Case pour effectuer la conversion.
L’argument rawScore est une valeur entière entre 0 et 100. La structure Select Case vérifie d’abord si rawScore est négatif et, si c’est le cas, la fonction renvoie un message d’erreur. L’instruction Case suivante vérifie si le score est inférieur à 60 et la fonction renvoie la note « F » si c’est le cas. L’instruction Case suivante recherche un score inférieur à 70. Si nous arrivons jusque-là, nous savons déjà (grâce à l’instruction Case précédente) que le score est d’au moins 60. Par conséquent, ce cas vérifie vraiment si le score est entre 60 et 70 (dont 60, mais pas 70). Si tel est le cas, la note de lettre « D » est renvoyée. Le reste des déclarations Case procèdent de la même manière. Le cas Elsech vérifie pour un score supérieur à 100 et renvoie un autre message d’erreur si tel est le cas.
Autre exemple: apprivoiser la fonction RVB
Vous pouvez utiliser la fonction VBA RVB (rouge, vert, bleu) à tout moment spécifiez une couleur pour une propriété. Chacun des trois arguments nommés (rouge, vert et bleu) sont des entiers compris entre 0 et 255 qui déterminent dans quelle mesure chaque couleur de composant est mélangée dans la couleur finale. Dans le composant rouge, par exemple, 0 signifie qu’il n’y a pas de rouge et 255 signifie que du rouge pur est présent. Si toutes les trois valeurs sont identiques, vous obtenez une nuance de gris.
Voici quelques exemples de valeurs pour chaque composant qui produisent des couleurs communes:
Rouge | Bleu | Vert | Résultat |
0 | 0 | 0 | Noir |
0 | 0 | 255 | Bleu |
0 | 255 | 0 | Vert |
0 | 255 | 255 | Cyan |
255 | 0 | 0 | Rouge |
255 | 0 | 255 | Margenta |
255 | 255 | 0 | Jaune |
255 | 255 | 255 | Blanc |
Cependant, plutôt que de mémoriser ces combinaisons, mettons VBA et Select Case à travailler pour faciliter le choix des couleurs. affiche la fonction VBAColor, qui vous permet d’utiliser des noms (par exemple, «rouge» ou «bleu») plutôt que numb cryptique er combinaisons pour définir 16 des couleurs les plus courantes.
Une fonction qui accepte un nom de couleur sous forme de chaîne et renvoie la valeur RVB correspondante
VBAColor prend un seul argument, colorName, qui est le nom de la couleur que vous veux travailler avec. Remarquez comment l’instruction Select Case masse l’argument pour éviter les erreurs:
Select Case LCase(Trim(colorName))
La fonction Trim supprime tous les espaces superflus au début et fin de l’argument et la fonction LCase convertit colorName en minuscules. Cela garantit que la fonction n’est pas sensible à la casse, ce qui signifie que le fait d’envoyer du noir, du NOIR ou du noir n’a pas d’importance: la fonction fonctionnera toujours.
Le reste de la fonction utilise des instructions Case pour vérifier le différents noms de couleur et renvoyer la valeur RVB appropriée. Vous pouvez utiliser la procédure ColorTester pour donner un tourbillon à VBAColora. Cette procédure met simplement en forme la couleur de police de la cellule de feuille de calcul actuellement sélectionnée.
Remarque: VBA définit également huit constantes de couleur qui vous pouvez utiliser lorsque vous avez juste besoin des couleurs de base: vbBlack, vbBlue, vbCyan, vbGreen, vbMagenta, vbRed, vbWhite et vbYellow.