<< Retour au sommaire

 

SELECT CASE

 

 

 

Le sommaire :

  1. Présentation.
  2. Un exemple dans EXCEL.

 

 

Présentation

 

Cette instruction permet de choisir un traitement selon la valeur d’une variable.

La syntaxe :

 

Select Case MaVariable

Case Valeur1

Traitement1

Case Valeur2

Traitement2

Case Valeur3 To Valeur4

Traitement3

Case Valeur5, Valeur6, Valeur7

Traitement4

Case Else

Traitement5

End Select

 

MaVariable est la variable dont la valeur va déterminer le traitement dans Select Case.

 

A l’intérieur de Select Case, nous effectuerons les comparaisons de MaVariable à des valeurs par l’intermédiaire de Case.

A chaque fois que vous souhaitez réaliser une opération de comparaison, commencez la ligne par Case, puis écrivez l’expression de comparaison.

L’expression peut être une valeur, dans quel cas vous écrivez directement la valeur.

L’expression peut être une suite de valeurs, dans quel cas vous séparez chaque valeur par une virgule.

L’expression peut être un intervalle entre deux valeurs, dans quel cas vous séparez ces deux valeurs par To.

Vous pouvez également introduire les signes inférieur et supérieur à l’intérieures des expressions.

Case Else dirige vers le traitement par défaut si aucune expression Case n'est vraie.

On pourrait comparer les case à des Si, et le Case Else à Sinon.

 

 


Un exemple dans EXCEL

 

Nous allons reprendre l’exemple du chapitre 6, « l’embranchement conditionnel if ».

Seulement, au moment de l’exécution de la macro FiltrerNoms, si l’utilisateur n’est pas dans la bonne feuille de calculs, par exemple la feuille intitulée « MaFeuille », nous allons lui proposer de quitter la feuille active pour atteindre la feuille intitulée MaFeuille.

La question lui sera posée dans une boîte de dialogue de type msgbox, la réponse sera affectée dans la variable Reponse.

Le traitement de la réponse sera réalisé par un select Case…

S’il accepte en validant le bouton « Oui », la feuille MaFeuille sera activée et la macro réexécutée.

S’il refuse, nous lui afficherons un message de désolation…

 Remarque : Le fait de réexécuter une macro à partir d’elle-même est appelé la récursivité.

 

Voici maintenant le code VISUAL BASIC de la macro FiltrerNoms :

 

Sub FiltrerNoms()

'

' FiltrerNoms Macro

' Macro enregistrée le 04/02/2008 par BOULANGER

'

' Touche de raccourci du clavier: Ctrl+y

'

    Application.Goto Reference:="R1C1"

    If ActiveCell.Value = "NOMS" Then

        Critere = InputBox("Saisissez les premières lettres du nom")

    Critere = "=" + Critere + "*"

    Selection.AutoFilter Field:=1, Criteria1:=Critere, Operator:=xlAnd

      Else

  Reponse = MsgBox("Erreur", vbYesNo, ",Attention, vous n'êtes pas dans la bonne feuille, désirez-vous quitter la feuille actuellement affichée ?")

      Select Case Reponse

      Case 6

          Application.Goto Reference:="MaFeuille!RC"

              FiltrerNoms

                Case Else

                     Reponse = MsgBox("Avertissement", vbOKOnly, "Désolé, votre macro va être arrêtée...")

                       End Select

 

End If

  

    End Sub

 

Remarque :

Dans le cadre de l’utilisation de la boîte de message msgbox avec les bouton « Oui » et « non », les valeurs retournées sont 6 pour « Oui » et 7 pour « non ».

 

Philippe BOULANGER