La fonction Choose() en VBA
Le saviez-vous ?
La fonction VBA Choose()
permet d’extraire une valeur d’une liste, à partir de son indice. Pas clair, hein ? Voici un exemple concret :
1 2 3 4 5 6 |
Dim x As Integer, jour As String x = InputBox("Tapez un nombre entre 1 et 5") jour = Choose(x, "lundi", "mardi", "mercredi", "jeudi", "vendredi") MsgBox "Le jour est : " & jour |
x
est supposé être une valeur entre 1 et 5. Lorsque x = 1, la fonction Choose()
renvoie la première valeur (lundi
), et ainsi de suite.
Si x
est hors limite (moins de 1 ou plus de 5 ici), la valeur renvoyée est Null
. Pour gérer ce cas, vous pouvez déclarer x
comme Variant
… ou appliquer un Nz()
sur la fonction Choose()
.
Équivalent par Select Case
Vous obtiendriez le même résultat avec un Select Case
, mais avouez que c’est plus long :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Dim x As Integer, jour As String x = InputBox("Tapez un nombre entre 1 et 5") Select Case x Case 1: jour = "lundi" Case 2: jour = "mardi" Case 3: jour = "mercredi" Case 4: jour = "jeudi" Case 5: jour = "vendredi" Case Else: jour = "Inconnu" End Select MsgBox "Le jour est : " & jour |
Équivalent par If
On peut passer également par un If / End If
, mais ce n’est pas mieux ici :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Dim x As Integer, jour As String x = InputBox("Tapez un nombre entre 1 et 5") If x = 1 Then jour = "lundi" ElseIf x = 2 Then jour = "mardi" ElseIf x = 3 Then jour = "mercredi" ElseIf x = 4 Then jour = "jeudi" ElseIf x = 5 Then jour = "vendredi" Else jour = "Inconnu" End If MsgBox "Le jour est : " & jour |