vba:td6excelword

Activité 6 : Excel et Word

Utilisez le même fichier Excel td_excel_1.xls contenant le modèle de facture.

Dans Excel, la programmation VBA permet de piloter d'autres applications Microsoft et échanger des données.

Dans le classeur Excel td_excel_1.xls et écrivez la procédure LancerWord() dans le module DCG. Puis ajoutez un bouton permettant de lancer cette procédure.

Code VBA à utiliser :

Set WordApp = CreateObject("word.application")
WordApp.Visible = True

Exécutez la procédure LancerWord() à partir de votre bouton et vous verrez que Word se lance mais sans aucun document.

Complétez votre procédure LancerWord() pour créer un document Word avec les informations suivantes :

  • mettre un titre Confirmation Achat
  • Titre : centré
  • Style de police : gras
  • Taille de police : 20

Code VBA à utiliser :

Set docWord = WordApp.Documents.Add 
With docWord.Sections(1).Range 
    .Text = "Confirmation Achat" & Chr(10) 
    .Font.Bold = True 
    .Font.Size = 20 
    .ParagraphFormat.Alignment = wdAlignParagraphCenter 
End With 

Le caractère & permet de faire des concaténations de chaînes de caractères.

L'instruction Chr(10) permet de gérer un saut de ligne. Il est possible d'utiliser des constantes VBA ce qui est plus facile à utiliser. http://www.commentcamarche.net/contents/1165-vbscript-les-constantes[Les constantes VB

La notation With … End With permet de simplifier l'écriture des commandes qui concernent le même objet. Sinon il aurait fallu écrire :

Set docWord = WordApp.Documents.Add 
docWord.Sections(1).Range.Text = "Confirmation Achat" & Chr(10) 
docWord.Sections(1).Range.Font.Bold = True 
docWord.Sections(1).Range.Font.Size = 20 
docWord.Sections(1).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter 
 

Complétez votre procédure LancerWord() pour enregistrer votre document Word nouvellement créé :

Code VBA à utiliser :

Dim strchemin As String
strchemin = ThisWorkbook.Path & "\"
With docWord 
    .SaveAs (strchemin & "ConfirmationFacture.docx") 
    .Close savechanges:=wdDoNotSaveChanges 
End With

Pour fermer le document Word il suffit de quitter le logiciel et de détruire les variables objets qui ont été créées :

Code VBA à utiliser :

WordApp.Quit 
Set docWord = Nothing 
Set WordApp= Nothing 
MsgBox strchemin & "ConfirmationFacture.docx" 
  • vba/td6excelword.txt
  • Dernière modification : 2023/01/20 23:29
  • de pb