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 :

Vba imprime word en pdf depuis excel 2003


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Bonjour,
    J'essaie d'ouvrir, puis d'imprimer un document word en pdf depuis un code vba sous excel 2003.
    Tout va bien jusqu'à l'ouverture du fichier word mais au lancement de ma macro PDF, plantage: "impossible de trouver la macro"...

    Le code:
    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
    Sub PUBLIPOSTPDFMLKB()
     
      Dim Fich As Worksheet
    Set Fich = ThisWorkbook.Worksheets("MLKB")
    Sheets("MLKB").Visible = True
    ActiveSheet.Unprotect
     
    chemin = "C:\Documents and Settings\XXXX\Bureau\XXXX.doc"
     
    Set FichierWord = CreateObject("word.application")
    Set wrdApp = CreateObject("Word.Application")
     
    FichierWord.Visible = True
    FichierWord.DisplayAlerts = False
     
     
        monDocument = chemin
        FichierWord.Documents.Open Filename:=monDocument
     
           ' Ouvrir le document
          '.Documents.Open "C:\Documents and Settings\XXXX\Bureau\XXXX.doc"
    wrdApp.Run MacroName:="IMPRPDF"
     
    ' Fermer et libérer les objets
    Set wdapp = Nothing 
     
    End Sub
    Quelqu'un y voit il plus clair que moi???

    Merci beaucoup

    Plus précisément:

    Erreur d'exécution '-2147352573 (80020003)':

    Impossible d'exécuter la macro spécifiée

    Avec la ligne de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wrdApp.Run MacroName:="IMPRPDF"
    Surlignée

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour,

    faudrait d'abord voir sans Excel si cela fonctionne sous Word car vu le code,
    Excel ne sert à rien hormis accaparer inutilement des ressources !

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Je précise que mon fichier word est un publipostage avec un autre classeur excel et qu'une fois ouvert, la barre de menu publipostage n'est pas active...le lien ne doit pas se faire.....

    En me servant d'un lien hypertext, ça fonctionne:

    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
    Sub X()
     
     
     Range("O2").Select
        Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
     
     
    ' Démarrer Word
    Set wrdapp = CreateObject("Word.Application")
     
     
     
    With wrdapp
           .Visible = True
     
          wrdapp.Run MacroName:="IMPRPDF"
     
     
     
    End With
     
    ' Fermer et libérer les objets
    Set wrdapp = Nothing
     
     
     
     
    End Sub
    Plus précisément, j'étais arrivé à un code très proche qui fonctionnait au poil mais l'ordi à planté , j'ai essayé de retrouver mon code qui était très proche de celui là mais je retrouve ma macro inexécutable (((j'enrage!!!!!)))

    Je pense que j'ouvre un deuxième doc avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ' Démarrer Word
    Set wrdapp = CreateObject("Word.Application")
    donc il perd de vue mon fichier dans le lien hypertexte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Range("O2").Select
        Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    dans lequel la macro est.

    Je suis même parvenu à avoir mon pdf créé!!!!!

    Je repars de du début:


    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
    Sub X()
     
      Dim Fich As Worksheet
    Set Fich = ThisWorkbook.Worksheets("MLKB")
    Sheets("MLKB").Visible = True
    ActiveSheet.Unprotect
     
    chemin = "C:\Documents and Settings\XXXX\Bureau\XXXX.doc"
     
    Set FichierWord = CreateObject("word.application")
    Set wrdapp = CreateObject("Word.Application")
     
    FichierWord.Visible = True
    FichierWord.DisplayAlerts = True
     
     
        monDocument = chemin
        FichierWord.Documents.Open Filename:=monDocument
     
           ' Ouvrir le document
          '.Documents.Open "C:\Documents and Settings\XXXX\Bureau\XXXX.doc"
    wrdapp.Run MacroName:="IMPRPDF"
     
     
     
    ' Fermer et libérer les objets
    Set wrdapp = Nothing
     
     
     
    End Sub

    avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FichierWord.DisplayAlerts = True
    OK pour le publipostage mais toujours la macro introuvable....

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    C'est OK avec:

    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
    Dim oWdApp As Word.Application
     
    'Lancer Word
    Set oWdApp = CreateObject("Word.Application")
     
    With oWdApp
    'Afficher Word si nécessaire...
    .Visible = True
    'Ouvrir le document Word
    .Documents.Open ("C:\Documents and Settings\XXXX\Bureau\XXXX\PUBLIPOST MLK B.doc")
    'Exécuter la macro
    .Run ("IMPRPDF")
    End With
     
    'Quitter Word
    oWdApp.Quit
     
    'Libérer les ressources
    Set oWdApp = Nothing
     
    End Sub
    Maintenant, je cherche à envoyer ce pdf par mail.

    Le problème rencontré: le code va trop vite et thunderbird s'ouvre sans attendre la création effective du pdf.... Comment peut-on ralentire une macro???peut-on conditionner sa poursuite par l'apparition du pdf dans le dossier???


    Le code:


    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
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        'En supposant que les adresses courriels sont en colonne J
        If Range("O3") > "" And InStr(1, Cells(Target.Row, 15), "@") > 0 Then
     
     
            MsgBox "Il y a une adresse courriel sur la ligne " & Target.Row
           EnvoimailMLKB
        Else
            MsgBox "Il n'y a pas d'adresse courriel sur la ligne " & Target.Row
     
        End If
     
         Target.Offset(1, 0).Select
     
    End Sub
     
    Sub EnvoimailMLKB()
     
    Workbooks("XXXX.xls").Activate
    Application.Run ("'ENREGISTRERMODIFETMAILMLKB'")
     
     
    Dim destinataire As String, sujet As String, body As String, fichierjoint As String, strcommand As String
    destinataire = Range("O" & ActiveCell.Row)
    sujet = "RESULTAT COMMISSION XXXX"
    body = "XXXX" & " " & Range("J2") & " " & Range("K2") & vbCrLf & vbCrLf & "Madame, Monsieur" & vbCrLf & vbCrLf & "Je vous prie de bien vouloir trouver, ci-joint, XXXX"
     
    fichierjoint = "C:\Documents and Settings\XXXX\Bureau\XXXX.pdf"
     
     
     
    strcommand = "C:\Program Files\Mozilla Thunderbird\thunderbird"
    strcommand = strcommand & " -compose " & "to='" & destinataire & "'"
    strcommand = strcommand & ",subject='" & sujet & "'"
    strcommand = strcommand & ",body='" & body & "'"
    'strcommand = strcommand & "," & "attachment=file:///" & fichierjoint
     
    strcommand = strcommand & "," & "attachment=file:///" & fichierjoint
     
     
    Debug.Print strcommand
     
    Call Shell(strcommand, vbNormalFocus)
     
     
     
     
    End Sub

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    J'ai inséré un wait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Wait()
    ' Attendre 20 secondes
    Application.Wait Time + TimeSerial(0, 0, 20)
    ' Continuer après la pause
    End Sub

    HOPHOPHOP Résolu

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

Discussions similaires

  1. [XL-2010] Problème de sauvegarde Word et Pdf depuis macro excel
    Par Cllem_501 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/11/2014, 14h03
  2. [XL-2007] Enregistrer un document Word en PDF depuis une macro EXCEL 2007
    Par davr971 dans le forum Excel
    Réponses: 3
    Dernier message: 13/06/2014, 16h36
  3. acceder au code vba à partir d'un fichier excel 2003 depuis 97
    Par miko91 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 18/10/2007, 16h01
  4. [VBA-E] Appel macro Access depuis Excel en mode silencieux
    Par lordkoko dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2006, 10h12
  5. [VBA]Connecter une base oracle depuis Excel
    Par roadster62 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2006, 14h34

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