|
Préambule
Poser des questions : Inputbox
Récupérer
la réponse : affecter une variable
Insérer la réponse dans un document Word : les signets
Récap
: ce que nous avons appris
Télécharger
fichier exemple
|
Interagir avec l'utilisateur
Insérer la réponse dans un document Word : les
signets
Il ne nous reste plus à présent qu'à signifier
à Word, étape par étape, les actions à
accomplir :
|
action à accomplir
|
syntaxe VBA
|
|
aller à l'emplacement du signet "x"
|
selection.goto ,,,"x"
|
|
insérer la variable "y" (réponse)
|
selection.insertafter y
|
et cela pour chaque réponse fournie par l'utilisateur.
L'instruction .Goto([What], [Which], [Count], [Name])
What : indique vers quel élément
le curseur doit se déplacer. Il peut s'agir
- d'un signet : wdGotoBookmark
- d'une page : wdGotoPage
- d'un tableau situé dans la page Word : wdGotoTable
- d'un objet : wdGotoObject
...
Pour la liste complète, je vous invite à vous référer
à l'aide (mot-clé : Goto).
En l'occurrence, c'est donc l'argument wdGotoBookmark
qui nous intéresse. Cependant, son utilisation est facultative
: nous l'omettrons donc, d'autant qu'il est fastidieux à
saisir !
En ce qui concerne les arguments Which
et Count utilisés dans des cas
de figures particuliers, je vous invite également à
consulter l'aide de Visual Basic.
Name : nom du signet, entre guillemets
Pour atteindre donc l'emplacement "nom", nous
taperons donc Selection.GoTo , , , "nom"
et pour atteindre "ville",
nous utiliserons la syntaxe Selection.Goto
,,, "ville" et ainsi de suite.
Il nous reste maintenant à insérer la réponse
saisie par l'utilisateur :
L'instruction selection.Insertafter
c'est la plus simple des instructions étudiées
lors de cette leçon : il suffit de taper : Selection.InsertAfter
nom_de_la_variable.
Ex : pour insérer la variable Nom$, il faut donc
taper :
Selection.InsertAfter Nom$
Notre code final complet est donc :
Sub promesse()
Genre$ = InputBox("Genre du destinataire", , "Monsieur")
Nom$ = InputBox("Prénom et NOM du destinataire")
Rue$ = InputBox("Adresse du destinataire")
Ville$ = InputBox("Code postal et VILLE")
TypeContrat$ = InputBox("Type de contrat", , "Contrat à durée
indéterminée")
Qualite$ = InputBox("Fonction occupée")
Fixe$ = InputBox("Montant de la rémunération brute mensuelle")
LieuTravail$ = InputBox("Lieu de travail", , "Paris")
Selection.GoTo , , , "nom"
Selection.InsertAfter Genre$ & " "
Selection.InsertAfter Nom$
Selection.GoTo , , , "Rue"
Selection.InsertAfter Rue$
Selection.GoTo , , , "ville"
Selection.InsertAfter Ville$
Selection.GoTo , , , "typecontrat"
Selection.InsertAfter TypeContrat$
Selection.GoTo , , , "qualite" Selection.InsertAfter Qualite$
Selection.GoTo , , , "fixe"
Selection.InsertAfter Fixe$
Selection.GoTo , , , "lieutravail"
Selection.InsertAfter LieuTravail$
Selection.GoTo , , , "genre2"
Selection.InsertAfter Genre$
End Sub
Quelques explications complémentaires (texte
bleu) :
- nous allons au signet "nom"
- nous insérons le genre (ex : "Monsieur") puis
un espace (& " ")
- derrière cet espace, nous insérons ensuite le
nom du destinataire.
Il ne vous reste plus qu'à sauvegarder notre code, à
refermer l'éditeur VBA et à affecter
une icône à notre macro pour pouvoir y accéder
aisément (veillez à bien attacher cette
icône au document Promesse et non à normal.dot)
Remarques :
- tapez les instructions en minuscules : lorsque vous appuierez
sur "Entrée", les initiales seront automatiquement
converties en majuscules. Si ce n'est pas le cas, c'est que vous
avez fait une erreur de frappe : relisez alors votre code
- si vous avez paramétré votre éditeur comme
recommandé, vous
pouvez utiliser les listes déroulantes pour vous éviter
une saisie somme toute fastidieuse (se positionner sur l'élément
voulu et appui sur la barre d'espacement)
Haut
|
Niveau
Pré-requis :
Étapes récapitulatives
-
Définir des signets
dans le document Word
-
Ouvrir le module de macro :
Alt F11
-
Associer la macro au projet
correspondant
-
Posez des questions à
l'utilisateur : InputBox(prompt[, title]
[, default])
-
Affecter une variable à
chaque réponse : maReponse=InputBox(prompt[,
title] [, default])
insérer les variables dans
un document :
-
selection.goto(,,,"Name")
-
Selection.Insertafter
nom_variable
|