Activité 6 : Excel et Word
Utilisez le même fichier Excel td_excel_1.xls contenant le modèle de facture.
Introduction à la programmation objet VBA
Dans Excel, la programmation VBA permet de piloter d'autres applications Microsoft et échanger des données.
Travail à faire
Lancer Word depuis Excel
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.
Créer un document Word
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
Enregistrer le document Word
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
Fermer le document Word
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"