Bonjour le forum,

Le code ci-dessous commence par manipuler des valeurs d'une feuille vers une autre, puis il doit ouvrir le documents Word "lettre mailing.doc" et y placer des valeurs qui se trouvent sur la feuille "Add" plage A2:A9.
Je suis sur que mon code est horrible....Mais il fonctionne bien pour toute la partie manipulation entre feuilles excel.
Là ou ça coince c'est avec: Dim wdApp As New Word.Application
Le message d'erreur est : "Erreur de compilation Type défini par un utilisateur non défini" .....
J'ai verifié le chemin d'accès..... il est bon
Je tourne en rond
Si quelqu'un à la solution....Merci d'avance
Lenul
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Sub add()
'
' Copie les valeurs de la feuille Mailing vers la feuille Add
' pour placer les données avant impression courrier personalisé
'
    Dim dte
    dte = Format(InputBox("Saisissez la date de votre envoi sous la forme:" & vbCrLf & " " & vbCrLf & " JJ mois Année, exemple: 10 janvier 2011"), "mm/dd/yyyy")
    Range("b2").Value = dte
 
    Sheets("Mailing").Select 'copie date de départ sur feuille Add
    Range("b2").Select
    Selection.Copy
    Sheets("Add").Select
    Range("b2").Select
    ActiveSheet.Paste
    Sheets("Mailing").Select 'copie raison sociale sur feuille Add
    Range("D2").Select
    Selection.Copy
    Sheets("Add").Select
    Range("A4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Mailing").Select 'copie  adresse sur feuille Add
    Range("f2").Select
    Selection.Copy
    Sheets("Add").Select
    Range("A6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Mailing").Select 'copie code postal+ville sur feuille Add
    Range("g2:h2").Select
    Selection.Copy
    Sheets("Add").Select
    Range("A7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Mailing").Select 'copie titre+nom+prénom sur feuille Add
    Range("k2:m2").Select
    Selection.Copy
    Sheets("Add").Select
    Range("a9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Mailing").Select 'copie la ligne sur feuille "Expédiés"
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Expédiés").Select
    Cells(65535, 1).End(xlUp)(2).Select
    ActiveSheet.Paste
    Sheets("Mailing").Select
    Application.CutCopyMode = False
 
    Sheets("Add").Select
 
    Dim wdApp As New Word.Application
    Dim wddoc As Word.document
    wdApp.Visible = True
    Set wddoc = wdApp.documents.Open(Filename:="T:Tableau devis SF\lettre mailing.doc")
    ActiveSheet.Range("a2:c9").Copy
    wdApp.Selection.pasteandformat wdformatplaintext
 
    wddoc.PrintOut ' impression de lettre mailing
 
    wddoc.Close True
    wdApp.Quit
 
    Range ("b2,a3:c9") 'sélectionne cette plage sur feuille Add
    Selection.ClearContents 'efface la sélection
    Sheets("Mailing").Select
    ActiveWorkbook.Save 'sauvegarde feuille Mailing
 
    Set wddoc = Nothing
    Set wdApp = Nothing
End Sub