Domaines
RH
Juridique
Compta
Administratif/Moyens Généraux
Communication
Bureautique
Conseils aux débutants
Word
Excel
PowerPoint
Outlook
Access
Publisher

PagePlus (PAO)

Windows/système
PhotoImpact
Conception web : les bases
Applications pas à pas
Tests logiciels
Macros VBA
Leçons
Macros Word
Astuces
Orthographe
Rédaction
Organisation
Produits/services malins
Outils
Ouvrages
Modèles
Macros
Liens
Anglais
Grammaire avec AnglaisFacile
Leçon gratuite avec AnglaisFacile
Carrière
Gestion de carrière
Fiches métier
Témoignages / vécu
Offres d'emploi

Evénements métier
Echos de presse, comptes-rendus

Echanger

Forums
Chater en direct

© Nadège Guilbert
Le contenu de ce site
est régulièrement déposé auprès de la SGDL
Reproduction interdite
sans le consentement
écrit de l'auteur



Imprimer la page

Macros / VBA > Index

04-Mai-2005

 

 

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 :

  • Aucun

 

É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