Contrôler Word à partir d'Excel
Bonjour j'apprend actuellement le VBA à mon travail, j'utilise un livre "Excel 2000 et VBA Développeur". Il y a un exemple dans ce livre qui me produit une erreur que je ne comprend pas (erreur automation echec de l'appel de procédure distante). Le but est de remplir automatiquement des lettres avec les données des trois premières colonnes de la feuille de calcul, chaque ligne correspond aux données de chaque lettre (par exemple nom adresse salaire) Avec le livre est fourni un cd-rom dans lequel cet exemple apparaît, l'erreur y est aussi.
D'ou cela peut-il venir ? Si quelqu'un peut m'aider j'en serais très reconnaissant.
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| Sub MakeMemos()
'crée des mémos dans word en utilisant l'automation
Dim WordApp As Word.Application
'démarre word et crée un objet
Set WordApp = New Word.Application
'information de la feuille de travail
Set Data = Sheets("Feuil4").Range("A1")
Message = Sheets("Feuil4").Range("E5")
'boucle sur les lignes de données
Records = Application.CountA(Sheets("Feuil4").Range("A:A"))
For i = 1 To Records
'mise barre de progression
Application.StatusBar = "Processing record" & i
'assigne la valeur courante aux variables
Region = Data.Offset(i - 1, 0).Value
SalesAmt = Format(Data.Offset(i - 1, 2).Value, "#,000")
SalesNum = Data.Offset(i - 1, 1).Value
'détermine le nom du fichier
SaveAsName = ThisWorkbook.Path & "\" & Region & ".doc"
'envoie des commandes à word
'On Error Resume Next
With WordApp
.Documents.Add ' l'erreur à lieu ici à la deuxième itération de la boucle !
With .Selection
.Font.Size = 14
.Font.Bold = True
.ParagraphFormat.Alignment = 1
.TypeText Text:="M E M O R A N D U M"
.TypeParagraph
.TypeParagraph
.Font.Size = 12
.ParagraphFormat.Alignment = 0
.Font.Bold = False
.TypeText Text:="Date:" & vbTab & _
Format(Date, "mmmm d, yyyy")
.TypeParagraph
.TypeText Text:="To:" & vbTab & Region & _
"Manager"
.TypeParagraph
.TypeText Text:="From:" & vbTab & _
Application.UserName
.TypeParagraph
.TypeParagraph
.TypeText Message
.TypeParagraph
.TypeParagraph
.TypeText Text:="Units Sold:" & vbTab & _
SalesNum
.TypeParagraph
.TypeText Text:="Amount:" & vbTab & _
Format(SalesAmt, "$#,##0")
End With
.ActiveDocument.SaveAs Filename:=SaveAsName
.ActiveWindow.Close
End With
Next i
'tue l'objet
WordApp.Quit
Set WordApp = Nothing
'reset
Application.StatusBar = ""
MsgBox Records & " memos ont été créés et sauvegardés dans " & _
ThisWorkbook.Path
End Sub |