<< Retour au sommaire

 

VBA, SELECT CASE

 

 

 

Table des matières

  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

 

A l’intérieur de Select Case, nous effectuerons les comparaisons de MaVariable à des valeurs par l’intermédiaire du mot clé « 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.

Par exemple, case 12

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

Par exemple, case 11, 12, 13

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

Par exemple, case 11 to 13

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

Par exemple, case <14

Case Else dirige vers le traitement par défaut si aucune expression « Case » précédentes n'est vraie.

On pourrait d’ailleurs comparer les « case » à des « Si », et le « Case Else » à « Sinon ».

 


Un exemple dans EXCEL

 

Nous allons réaliser une petite macro dans EXCEL.

  1. Par l’intermédiaire de la boîte de message « MsgBox », nous allons demander à l’utilisateur s’il désire atteindre la feuille de calculs intitulée « Mafeuille » ;
  2. S’il valide le bouton « Oui », nous atteignons la feuille « Mafeuille » ;
  3. S’il valide le bouton « Non », nous affichons un message « idiot » et nous restons sur rplace…

 

Voici le code :

 

Sub AtteindreMaFeuille()

'

' AtteindreMaFeuille Macro

'

' Touche de raccourci du clavier: Ctrl+y

'

‘ Demande à l’utilisateur s’il désire atteindre MaFeuille

Reponse = MsgBox("Question", vbYesNo, "Désirez-vous atteindre MaFeuille ?")

‘ Traitement de la réponse de l’utilisateur

Select Case Reponse

Case 6

‘ Oui, il veut atteindre MaFeuille

  Application.Goto Reference:="MaFeuille!RC"

Case Else

‘ Non, il ne désire pas…

  Reponse = MsgBox("Désolé", vbOKOnly, "Eh bien restez où vous êtes !")

End Select

End Sub

 

Philippe BOULANGER