|
Préambule
Le modèle et ses
signets
Créer une boîte
de dialogue : Userform
Ajouter des contrôles
Intitulés et Zones de texte
Les autres contrôles
et leurs propriétés : boutons de commande, image
et UserForm
Insérer du code :
bouton "Annuler"
insérer du code :
bouton "Valider" - Positionner le curseur dans le document
Word
insérer du code :
bouton "valider" - insérer le contenu de la boîte
de dialogue
insérer du code : bouton "valider" - insérer
un retour chariot dans Word
Refermer la boîte
de dialogue
Lancer la macro à
l'ouverture du modèle
Conclusion
Télécharger
fichier exemple
Télécharger la Userform
finalisée (sans le code !)
|
Dessiner sa boîte de dialogue
Insérer du code : bouton "valider" - insérer
un retour chariot dans Word
Une adresse s'écrit sur plusieurs lignes.
Nous aurions fort bien pu définir autant de signets que
de lignes mais il est plus simple -nous verrons plus tard pourquoi-
d'insérer des retours chariot à l'aide de code.
Dans le cas qui nous occupe, nous devons récupérer,
dans l'ordre, les valeurs des contrôles suivants:
societe - contact - rue1 - rue2 - cp - ville
L'adresse est égale à tous ces contrôles,
"additionnés" ou plutôt concaténés
(mis bout à bout) et séparés par un
retour chariot ou un espace (cp et ville).
Si le "+" est le symbole de l'addition, &
s'emploie pour concaténer des chaînes de caractères.
Le changement de ligne (retour chariot) s'écrit
quant à lui chr(10) et l'insertion
d'un espace se fait à l'aide de 2 guillemets séparés
par un espace " ".
En langage clair, nous pourrions écrire notre adresse
comme ceci (rc = retour chariot) :
adresse = societe + rc + contact +
rc + rue1 + rc
+ rue2 + rc + cp + un
espace + ville
Si nous remplaçons la ligne ci-dessous par les équivalents
visual basic, nous obtenons donc :
adresse = societe & chr(10)
& contact & chr(10) & rue1 & chr(10) & rue2
& chr(10) & cp & " " & ville
Il ne nous reste plus qu'à atteindre le signet "adresse"
et à insérer dans notre code la syntaxe ci-dessus.
Ce qui nous donne, au final :
Private Sub ok_Click()
Selection.GoTo , , , "date"
Selection.InsertAfter datel
Selection.Goto , , , "adresse"
Selection.InsertAfter societe & chr(10) & contact &
chr(10) & rue1 & chr(10) & rue2 & chr(10) &
cp & " " & ville
Selection.GoTo , , , "vosref"
Selection.InsertAfter vosref
Selection.GoTo , , , "nosref"
Selection.InsertAfter nosref
Selection.GoTo , , , "objet"
Selection.InsertAfter objet
Selection.GoTo , , , "pj"
Selection.InsertAfter pj
Selection.GoTo , , , "salutation1"
Selection.InsertAfter salutation
Selection.GoTo , , , "salutation2"
Selection.InsertAfter salutation
Selection.GoTo , , , "signataire"
Selection.InsertAfter signataire
Selection.GoTo , , , "titre"
Selection.InsertAfter titre
Selection.GoTo , , , "debut"
End Sub
Pour l'heure, il nous reste encore à résoudre 2
problèmes fondamentaux pour que cette macro soit totalement
opérationnelle : refermer la boîte de dialogue (elle
reste affichée, même après un clic sur le
bouton valider) et son lancement (pour l'instant, nous
la lançons à travers l'éditeur, ce qui n'est
pas l'idéal...).
Rassurez-vous : le plus dur est fait et vous le constaterez,
les deux dernières étapes ne vous prendront pas
plus de 5 minutes...
Haut
|
Niveau
Pré-requis :
Pour affecter du code à
un bouton : double-clic sur ledit bouton
Refermer une Userform :
Unload nom_de_la_feuille
Atteindre un signet Word :
selection.goto, , , "nom_du_signet"
Insérer le contenu d'un
contrôle :
selection.insertAfter nom_du_contrôle
Insérer un paragraphe
: chr(10)
Concaténer des chaînes
: &
Insérer un espace
: " "
|