IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème d'automatisation publipostage vba [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Par défaut Problème d'automatisation publipostage vba
    Bonjour à tous !

    Je suis une novice sur le forum. J'espère que vous seriez indulgent avec moi
    Et j'espère surtout que vous pourriez m'aider : j'ai cherché partout pour essayer de comprendre mon blocage mais je ne trouve pas de solution à mon problème.

    Je souhaite automatiser mon publipostage depuis un fichier Excel.
    Je commence à apprendre le vba seule mais c'est pas si simple...

    Avec le code VBA ci-dessous, le fchier word s'ouvre mais le publipostage ne se fait pas, je ne comprends pas pourquoi...
    Pour info, lorsque j'enregistre et je ferme mon fichier excel puis j'ouvre mon fichier word, le publipostage fonctionne.

    Si quelqun pourrait m'aider à comprendre ma faute, ca serait sympa !

    Merci d'avance pour ceux qui prendront le temps de me lire et d'essayer de comprendre mon problème.

    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
    Sub commandButton1_Click()
     
    Dim NomBase As String
    Dim oWdApp As Object
     
    'Lancer Word
    Set oWdApp = CreateObject("Word.Application")
    With oWdApp
    'Afficher Word si nécessaire...
    .Visible = True
    'Ouvrir le document Word
    Set Wordoc = oWdApp.documents.Open("C:\Users\bws229\Desktop\dc1Test.docx")
    End With
     
    'fonctionnalité de publipostage pour le document spécifié
        With docWord.mailMerge
            'Ouvre la base de données
            .OpenDataSource Name:=NomBase, _
                Connection:="Driver={Microsoft Excel Driver (*.xlsm)};" & _
                "DBQ=" & NomBase & "; ReadOnly=True;", _
                SQLStatement:="SELECT * FROM [Réponses1$]"
           'Prend en compte l'ensemble des enregistrements
                With .DataSource
                    .firstRecord = wdDefaultFirstRecord
                    .lastRecord = wdDefaultLastRecord
                End With
            'Exécute l'opération de publipostage
            .Execute Pause:=False
     
        Application.ScreenUpdating = True
     
        'Fermeture du document Word
        docWord.Close False
        appWord.Quit
     
    End Sub

  2. #2
    Membre Expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Par défaut
    Bonjour,

    Peux-tu dire où cela bloque ?

    A première vue, tu utilises "Set Wordoc=" et par après tu passes sur "docWord". Je pense qu'il manque un "End With". Essaie avec ceci

    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
    Dim NomBase As String
    Dim oWdApp As Object
     
    'Lancer Word
    Set oWdApp = CreateObject("Word.Application")
    With oWdApp
    'Afficher Word si nécessaire...
    .Visible = True
    'Ouvrir le document Word
    Set Wordoc = oWdApp.documents.Open("C:\Users\bws229\Desktop\dc1Test.docx")
    End With
     
    'fonctionnalité de publipostage pour le document spécifié
        With Wordoc.mailMerge
            'Ouvre la base de données
            .OpenDataSource Name:=NomBase, _
                Connection:="Driver={Microsoft Excel Driver (*.xlsm)};" & _
                "DBQ=" & NomBase & "; ReadOnly=True;", _
                SQLStatement:="SELECT * FROM [Réponses1$]"
           'Prend en compte l'ensemble des enregistrements
                With .DataSource
                    .firstRecord = wdDefaultFirstRecord
                    .lastRecord = wdDefaultLastRecord
                End With
            'Exécute l'opération de publipostage
            .Execute Pause:=False
     
        Application.ScreenUpdating = True
     
        'Fermeture du document Word
        Wordoc.Close False
        oWdApp.Quit
     End With

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Par défaut
    Merci pour ta réponse. Mais ce n'est malheureusement pas ca.
    Le débogueur m'indique une erreur à "With docWord.mailMerge"
    Je ne comprends pas pourquoi, ca fait des jours que j'essaie d'améliorer mon code mais en vain...

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Par défaut
    Problème résolu !
    Avec la fatigue j'avais pas vu que Microsoft Word 14.0 Object Library n'était pas coché.
    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'automatisation
    Par karpette dans le forum Langage
    Réponses: 6
    Dernier message: 28/04/2006, 10h06
  2. [RegEx] Problème d'automatisation
    Par karpette dans le forum Langage
    Réponses: 1
    Dernier message: 26/04/2006, 10h22
  3. Problème d'automatisation
    Par karpette dans le forum Langage
    Réponses: 1
    Dernier message: 25/04/2006, 16h16
  4. Problème de requête en VBA
    Par otravaglini dans le forum Access
    Réponses: 2
    Dernier message: 20/04/2006, 11h19
  5. Problème avec open() [Excel VBA]
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/11/2005, 16h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo