<< Retour au sommaire

 

VBA, Création d’un document automatisé dans WORD avec InputBOX

 

 

 

Table des matières

  1. Introduction ;
  2. L’analyse ;
  3. La macro en VBA.

 

Introduction

 

Dans cette leçon, nous allons découvrir l’une des utilités de l’instruction InputBox.

Nous allons élaborer une macro qui permettra de créer un formulaire administratif de convocation.

Cette macro va s’intituler « Formulaire », et nous l’assignerons à la touche de fonction F12.

Pour construire cette macro, nous débuterons par un petit enregistrement et le reste de la programmation découlera très logiquement de ces quelques lignes de code déjà préenregistrées.

 

  1. Ouvrez WORD ;
  2. Créer une macro, donnez-lui le nom « Formulaire » et assignez-lui la touche de fonction F12 ;
  3. Dès que l’enregistrement débute, saisissez « bonjour », pressez la touche « entrée », saisissez une nouvelle fois « bonjour », puis, arrêtez l’enregistrement ;

 

Voilà, maintenant, je vous donne rendez-vous dans l’éditeur VBA !

Vous devriez y trouver une poésie de ce genre-là :

' Formulaire Macro

' Macro enregistrée le 15/03/2008 par BOULANGER

'

    Selection.TypeText Text:="bonjour"

    Selection.TypeParagraph

    Selection.TypeText Text:="bonjour"

    Selection.TypeParagraph

End Sub

 

Vous comprenez immédiatement que la commande qui à permis d’écrire « bonjour » au clavier est :

    Selection.TypeText Text:="bonjour"

 

Quant au retour chariot, la commande est donc :

    Selection.TypeParagraph

 

Il suffit à présent d’alimenter notre macro par des fonctions « InputBox » pour récupérer auprès de l’utilisateur, le titre du fonctionnaire, son prénom, son nom, la date, l’heure, le lieu de la réunion et le sujet, puis, de concaténer tout ça avec un texte prédéfini, la notification de la réunion elle-même.

 


L'analyse

 

En terme d’analyse, voici ce que ça donne :

 

Déclaration des variables de type « alphanumérique » en entrée au clavier :

        Titre, Prénom, Nom, DateRéunion, Horaire, Lieu et Sujet.

Déclaration des variables temporaires de type « alphanumérique » utilisées pour formater la saisie dans Word :

Ligne1, Ligne2, Ligne3, Ligne4 et Ligne5.

 

Affectation dans : Titre = Demander à l’utilisateur le titre du fonctionnaire convoqué.

Affectation dans : Prénom = Demander à l’utilisateur le prénom du fonctionnaire convoqué.

Affectation dans : Nom = Demander à l’utilisateur le nom du fonctionnaire convoqué.

Affectation dans : Ligne1 = Faire la concaténation des variables titre, Prénom et Nom.

Écrire Ligne1 dans WORD.

Réaliser 2 sauts de ligne

 

Affectation dans : DateRéunion = Demander la date de la réunion à l’utilisateur.

Affectation dans : Horaire = Demander l’heure de la réunion à l’utilisateur.

Affectation dans : Lieu = Demander le lieu de la réunion à l’utilisateur.

Ligne2 = Formuler la demande en concaténant les variables DateRéunion, Horaire, Lieu, et le texte de la convocation.

Écrire Ligne2 dans WORD.

Réaliser un saut de ligne

 

Affectation dans : Sujet = Demander le sujet de la réunion à l’utilisateur.

Ligne3 = Formuler le sujet, l’ordre du jour en concaténant texte et la variable Sujet.

Écrire Ligne3 dans WORD.

Réaliser un saut de ligne

 

Ligne4 = Formuler la conclusion et spécifier les coordonnées.

Écrire Ligne4 dans WORD.

Réaliser un saut de ligne

 

Ligne5 = Formuler la signature.

Écrire Ligne5 dans WORD.

Afficher un message de fin de saisie.


La macro en VBA

 

Maintenant, en VBA, voici ce que ça donne…

 

Sub Formulaire()

'

' Formulaire Macro

'

'

Titre = InputBox("Saisissez le titre du fonctionnaire à convoquer ", "Titre du fonctionnaire")

Prénom = InputBox("Saisissez le prénom du fonctionnaire à convoquer ", "Prénom du fonctionnaire")

Nom = InputBox("Saisissez le nom du fonctionnaire à convoquer ", "Nom du fonctionnaire")

' Concaténation, préparation de la ligne 1

Ligne1 = Titre + " " + Prénom + " " + Nom

' écriture de la ligne dans le document

Selection.TypeText Text:=Ligne1

' Réalise 2 sauts de ligne

Selection.TypeParagraph

Selection.TypeParagraph

DateReunion = InputBox("Saisissez la date de la réunion ", "Date de la réunion")

Horaire = InputBox("Saisissez l'horaire de la réunion ", "Horaire de la réunion")

Lieu = InputBox("Saisissez le lieu de la réunion ", "Lieu de la réunion")

' Concaténation, préparation de la ligne 2

Ligne2 = "J'ai le plaisir de vous faire part de la réunion mensuelle qui aura lieu le " + DateReunion + ", à " + Horaire + " Dans les locaux suivants : " + Lieu

' écriture de Ligne2 dans WORD

Selection.TypeText Text:=Ligne2

' Réalise un saut de ligne

Selection.TypeParagraph

Sujet = InputBox("Saisissez le sujet de la réunion ", "Sujet de la réunion")

' Concaténation, préparation de la ligne 3

Ligne3 = "L'ordre du jour : " + Sujet

' écriture de la ligne 3 dans WORD

Selection.TypeText Text:=Ligne3

' Réalise un saut de ligne

Selection.TypeParagraph

' Préparation de la ligne 4

Ligne4 = "Vous pouvez d'ores et déjà me faire parvenir vos éventuelles observations liées au sujet de cette réunion. Vous pouvez me joindre au service du développement, poste 79444."

' écriture de la ligne 4 dans WORD

Selection.TypeText Text:=Ligne4

' Réalise 2 sauts de ligne

Selection.TypeParagraph

Selection.TypeParagraph

' Préparation de la ligne 5

Ligne5 = "M. Bernard VERNE, Chef de projet"

' écriture de la ligne 5

Selection.TypeText Text:=Ligne5

' Message de fin de saisie de formulaire

Resultat = MsgBox("La saisie de la convocation de réunion pour " + Prénom + " " + Nom + " est réalisée", vbOKOnly, "Avertissement !")

End Sub

 

Philippe BOULANGER