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 :

Imprimer un word avec publipostage depuis excel (VBA)


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Autre
    Inscrit en
    Octobre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Octobre 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Imprimer un word avec publipostage depuis excel (VBA)
    Bonjour,

    J'ai un problème dans mon code que je n'arrive pas à résoudre! (je ne suis pas un pro d'où le code certainement pas trop propre )
    Je voudrais imprimer les 4 premières pages d'un enregistrement de mon fichier word mais le script reste bloqué sur la ligne "wordDoc.PrintOut...", le message d'erreur est :
    Erreur d'execution '5148'
    Le nombre doit être compris entre -32765 et 32767
    Quelqu'un aurait il une idée d'où vient le problème (param_quantite = 1 ou 2)

    D'avance merci!

    Code vb : 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
    Private Sub ouvrir_word()
        Dim NomBase As String
        Dim Nom_word As String
        Dim wordApp As Object
        Dim wordDoc As Object
         Dim fichier_word As String
        fichier_word = ThisWorkbook.Sheets("Liste_deroulante").Range("G1").Value
     
        NomBase = ThisWorkbook.Path & "\" & ThisWorkbook.Name
        Nom_word = ThisWorkbook.Path & "\" & fichier_word
     
        Application.ScreenUpdating = False
     
        Set wordApp = CreateObject("Word.Application")
        wordApp.Visible = True
        wordApp.WordBasic.FilePrintSetup Printer:=imprimante, _
          DoNotSetAsSysDefault:=1
        'Ouverture du document principal Word
           Set wordDoc = wordApp.Documents.Open(Nom_word)
     
        'fonctionnalité de publipostage pour le document spécifié
        With wordDoc.MailMerge
            'Ouvre la base de données
            .OpenDataSource Name:=NomBase, _
                Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _
                "DBQ=" & NomBase & "; ReadOnly=True;", _
                SQLStatement:="SELECT * FROM [BDD_entretien$]"
                '.DataSource.ActiveRecord = i - 1
                .DataSource.firstRecord = i - 1
                .DataSource.lastRecord = i - 1
                .ViewMailMergeFieldCodes = wdToggle
     
                wordDoc.PrintOut , Background:=True, Copies:=param_quantite, Range:=wdPrintFromTo, from:=1, to:=4
     
        End With
     
        'Fermeture du document Word
        On Error GoTo dejaferme
        wordApp.Documents.Close False
        On Error GoTo dejaferme
        wordApp.Quit
    dejaferme:
    End Sub

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Autre
    Inscrit en
    Octobre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Octobre 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'ai trouvé ma solution!
    désolé du dérangement!
    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
    Private Sub ouvrir_word()
        'Nécessite d'activer la référence "Microsoft Word xx.x Object Library"
        Dim NomBase As String
        Dim Nom_word As String
        Dim wordApp As Object
        Dim wordDoc As Object
         Dim fichier_word As String
        fichier_word = ThisWorkbook.Sheets("Liste_deroulante").Range("G1").Value
     
        NomBase = ThisWorkbook.Path & "\" & ThisWorkbook.Name
        Nom_word = ThisWorkbook.Path & "\" & fichier_word
     
        Application.ScreenUpdating = False
     
        Set wordApp = CreateObject("Word.Application")
        wordApp.Visible = True
        wordApp.WordBasic.FilePrintSetup Printer:=imprimante, _
          DoNotSetAsSysDefault:=1
        'Ouverture du document principal Word
           Set wordDoc = wordApp.Documents.Open(Nom_word)
     
        'fonctionnalité de publipostage pour le document spécifié
        With wordDoc.MailMerge
            'Ouvre la base de données
            .OpenDataSource Name:=NomBase, _
                Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _
                "DBQ=" & NomBase & "; ReadOnly=True;", _
                SQLStatement:="SELECT * FROM [BDD_entretien$]"
                .DataSource.ActiveRecord = i - 1
                .ViewMailMergeFieldCodes = wdToggle
     
     
                 wordDoc.PrintOut Copies:=param_quantite, Range:=3, From:="p1s1", To:="p" & (5 - param_imprimer) & "s1"
        End With
     
        'Fermeture du document Word
        On Error GoTo dejaferme
        wordApp.Documents.Close False
        On Error GoTo dejaferme
        wordApp.Quit
    dejaferme:
    End Sub

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

Discussions similaires

  1. Vba imprime word en pdf depuis excel 2003
    Par Kestion100 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/03/2014, 09h41
  2. Mise en page d'un document word depuis excel VBA
    Par tinange dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/12/2012, 12h42
  3. [WD-2007] Publipostage word avec condition (bdd excel)
    Par zazz74 dans le forum Word
    Réponses: 1
    Dernier message: 30/06/2009, 20h09
  4. Réponses: 10
    Dernier message: 08/11/2007, 16h20
  5. Question sur accès fichier word depuis excel (VBA)
    Par jerome.grange dans le forum VBA Word
    Réponses: 6
    Dernier message: 22/09/2006, 17h34

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