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:

sPrompt = "1. This is your first choice" & vbCrLf sPrompt = sPrompt & "2. This is your second choice" & vbCrLf sPrompt = sPrompt & "3. This is your third choice" & vbCrLf sPrompt = sPrompt & "4. This is your fourth choice" & vbCrLf sPrompt = sPrompt & "5. This is your fifth choice"

Vous pouvez désormais utiliser la chaîne sPrompt 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:

sUserResp = InputBox(sPrompt, "The Big Question")

iUR = Val(sUserResp)

Dans cet exemple, la réponse de la fonction InputBox est affectée à la variable sUserResp, qui doit être une chaîne. La variable iUR, qui est une variable numérique (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 dans VBA:

Sub TestInput()

Dim sPrompt As String     Dim sUserResp As String     Dim iUR As Integer

sPrompt = "1. This is your first choice" & vbCrLf     sPrompt = sPrompt & "2. This is your second choice" & vbCrLf     sPrompt = sPrompt & "3. This is your third choice" & vbCrLf     sPrompt = sPrompt & "4. This is your fourth choice" & vbCrLf     sPrompt = sPrompt & "5. This is your fifth choice"

iUR = 0     While iUR < 1 Or iUR > 5         sUserResp = InputBox(sPrompt, "The Big Question")

iUR = Val(sUserResp)

Wend     Select Case iUR         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 WordTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / wordribbon-WordTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

WordTips est votre source pour une formation Microsoft Word rentable.

(Microsoft Word est le logiciel de traitement de texte le plus populaire au monde.) Cette astuce (10763) s’applique à Microsoft Word 2007, 2010, 2013 et 2016. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu de Word ici:

link: / word-Offer_Options_in_a_Macro [Offrir des options dans une macro].