Offre d’options dans une macro (Microsoft Excel)
Si vous commencez tout juste à développer des macros, vous recherchez peut-être un moyen simple d’offrir un ensemble de choix à un utilisateur, puis de prendre une action en fonction de la réponse de l’utilisateur. Il s’agit d’une tâche relativement simple, si vous utilisez la fonction InputBox avec une structure Select Case.
La première tâche consiste à configurer votre InputBox pour qu’elle affiche les informations à l’utilisateur. Par exemple, disons que vous avez cinq options et que vous souhaitez que l’utilisateur sélectionne une option parmi ces cinq. Vous pouvez utiliser le code suivant pour assembler cinq options, chacune sur sa propre ligne:
Prompt = "1. This is your first choice" & vbCrLf Prompt = Prompt & "2. This is your second choice" & vbCrLf Prompt = Prompt & "3. This is your third choice" & vbCrLf Prompt = Prompt & "4. This is your fourth choice" & vbCrLf Prompt = Prompt & "5. This is your fifth choice"
Vous pouvez désormais utiliser la chaîne Prompt lorsque vous appelez la fonction InputBox dans votre macro. Vous traduisez ensuite ce avec quoi l’utilisateur répond en un nombre qui représente son choix parmi vos cinq options. Le code pour ce faire est le suivant:
UserResp = InputBox(Prompt, "The Big Question") UR = Val(UserResp)
Dans cet exemple, la réponse de la fonction InputBox est affectée à la variable UserResp, qui doit être dimensionnée en tant que chaîne. La variable UR, qui doit être dimensionnée comme un entier, est ensuite définie en fonction de la valeur de la chaîne. (La fonction Val renvoie la valeur dans une chaîne.)
La seule chose à faire est de prendre une action en fonction du nombre choisi, de 1 à 5. Vous pouvez utiliser la structure Sélectionner un cas pour ce faire.
Le sous-programme complet pourrait apparaître comme suit:
Sub Macro1() Dim Prompt As String Dim UserResp As String Dim UR As Integer Prompt = "1. This is your first choice" & vbCrLf Prompt = Prompt & "2. This is your second choice" & vbCrLf Prompt = Prompt & "3. This is your third choice" & vbCrLf Prompt = Prompt & "4. This is your fourth choice" & vbCrLf Prompt = Prompt & "5. This is your fifth choice" UR = 0 While UR < 1 Or UR > 5 UserResp = InputBox(Prompt, "The Big Question") UR = Val(UserResp) Wend Select Case UR Case 1 'Do stuff for choice 1 here Case 2 'Do stuff for choice 2 here Case 3 'Do stuff for choice 3 here Case 4 'Do stuff for choice 4 here Case 5 'Do stuff for choice 5 here End Select End Sub
Notez que cet exemple utilise une boucle While … Wend autour de la fonction InputBox. Ceci est fait pour s’assurer que l’utilisateur entre un nombre entre 1 et 5. Si la valeur entrée est en dehors de cette plage, alors l’utilisateur est simplement invité à nouveau.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (3098) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
link: / excelribbon-Offer_Options_in_a_Macro [Offrir des options dans une macro]
.