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