Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/02/2011, 16h15   #1
Invité régulier
 
Pierre ANTOINE
Inscription : novembre 2009
Messages : 34
Détails du profil
Informations personnelles :
Nom : Pierre ANTOINE

Informations forums :
Inscription : novembre 2009
Messages : 34
Points : 9
Points : 9
Par défaut Publipostage depuis Excel

Bonjour,

J'ai créé une macro sous Excel afin d'automatiser la création d'un publipostage. Tout fonctionne correctement, mais je n'arrive pas à enregistrer le fichier créé (un fichier unique qui englobe toutes les données).
En gros, je voudrais qu’une fois le fichier généré, il l’enregistre dans le dossier « données », avec comme nom « fr.docx », puis ensuite fermer le fichier qui sert de modèle .


Merci d’avance pour votre aide car je suis vraiment bloqué.
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
 
Sub Publipostage()
 
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
 
    Set WordApp = CreateObject("word.application")
    WordApp.Visible = True
    Set WordDoc = WordApp.Documents.Open("GE2.docx")
 
   WordApp.DisplayAlerts = wdAlertsNone
 
   WordDoc.MailMerge.OpenDataSource Name:=" GE.xlsm" _
        , ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
        AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
        WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
        Format:=wdOpenFormatAuto, Connection:= _
        "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=GE.xlsm;Mode=Read;Extended Properties=""HD" _
        , SQLStatement:="SELECT * FROM `'fr-FR$'`", SQLStatement1:="", SubType:= _
        wdMergeSubTypeAccess
 
 
    With WordDoc.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
            With .DataSource
                .FirstRecord = wdDefaultFirstRecord
                .LastRecord = wdDefaultLastRecord
            End With
                .Execute
 
   End With
 
With WordDoc
    .SaveAs "\données\FR.doc"
    .Close
End With
 
End Sub
Pierrea4564 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 09h54   #2
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Déja, est_ce qui 'il ne faut pas enregistrer au format DOCX ?
Code :
1
2
3
4
5
With WordDoc
    .SaveAs "\données\FR.docx"
    .Close
End With
d'autre part, le reperoire "\données" me parait bizarre
Moi, je mettrais
Code :
1
2
3
4
5
6
 
.Saves as "c:\donnees\fr.docx"
ou
.Saves as "..\donnees\fr.docx"
ou
.Saves as ".\donnees\fr.docx"
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 16h50   #3
Invité régulier
 
Pierre ANTOINE
Inscription : novembre 2009
Messages : 34
Détails du profil
Informations personnelles :
Nom : Pierre ANTOINE

Informations forums :
Inscription : novembre 2009
Messages : 34
Points : 9
Points : 9
Merci Garuda.
Le problème ne venait pas que de là.
A force de recherche, j'ai finis par trouver une solution.

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
 
Sub Publipostage()
'
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
 
    Set WordApp = CreateObject("word.application")
    WordApp.Visible = True
    Set WordDoc = WordApp.Documents.Open("M:\GE2.docx")
 
   WordApp.DisplayAlerts = wdAlertsNone
 
   WordDoc.MailMerge.OpenDataSource Name:="M:\GE.xlsm" _
        , ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
        AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
        WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
        Format:=wdOpenFormatAuto, Connection:= _
        "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=M:\GE.xlsm;Mode=Read;Extended Properties=""HD" _
        , SQLStatement:="SELECT * FROM `'fr-FR$'`", SQLStatement1:="", SubType:= _
        wdMergeSubTypeAccess          
 
      With WordDoc.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
            With .DataSource
                .FirstRecord = wdDefaultFirstRecord
                .LastRecord = wdDefaultLastRecord
            End With
                .Execute
 
   End With
 
   WordApp.Windows("Lettres types1").Activate
   WordApp.ActiveDocument.SaveAs "M:\toto.doc"
   WordApp.ActiveDocument.Close
 
   WordDoc.Close
 
WordApp.Quit
 
End Sub
Pierrea4564 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h02.


 
 
 
 
Partenaires

Hébergement Web