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
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 :
  • Aucun

 

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 : " "