Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
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 07/08/2007, 12h13   #1
Invité régulier
 
Inscription : juin 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 23
Points : 6
Points : 6
Par défaut conversion .doc en .pdf

Bonjour a tous. Je pense que tout est dit dans le titre.

Je me trouve au pied d'un mur. J'ai une macro qui marche tres bien sur excel pour imprimer une feuille excel en pdf avec chemin et nom de fichier. Mais lorsque j'utilise la même source sous word je recupere une erreur. Je pense que cela vient du fait que la méthode .PrintOut doit etre différente (au niveau des arguments) selon le programme utilisé.

Voici mon code sous excel :
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
 
Sub PDF()
Dim jobPDF As Object
Dim sNomPDF As String
Dim sCheminPDF As String
 
    sNomPDF = "Rapport.pdf"
    sCheminPDF = "MonChemin"
 
    Set jobPDF = CreateObject("PDFCreator.clsPDFCreator")
 
    With jobPDF
        If .cStart("/NoProcessingAtStartup") = False Then
            MsgBox "Initialisation de PDFCreator impossible", vbCritical + vbOKOnly, "PDFCreator"
            Exit Sub
        End If
        .cOption("UseAutosave") = 1
        .cOption("UseAutosaveDirectory") = 1
        .cOption("AutosaveDirectory") = sCheminPDF
        .cOption("AutosaveFilename") = sNomPDF
 
        '0=PDF, 1=Png, 2=jpg, 3=bmp, 4=pcx, 5=tif, 6=ps, 7=eps, 8=txt
        .cOption("AutosaveFormat") = 0
        .cClearCache
    End With
 
 
    'Fichier dans la file d'attente
    Do Until jobPDF.cCountOfPrintjobs = 1
        DoEvents
    Loop
    jobPDF.cPrinterStop = False
 
    'Attendre que la file d'attente soit vide
    Do Until jobPDF.cCountOfPrintjobs = 0
        DoEvents
    Loop
    jobPDF.cClose
    Set jobPDF = Nothing
End Sub
Nowoday est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 12h17   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
C'est peut-être idiot, mais je ne vois pas de PrintOut dans ton code ?
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 12h34   #3
Invité régulier
 
Inscription : juin 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 23
Points : 6
Points : 6
Effectivement je l'avais enlever pour des tests elle se trouve la.

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 PDF()
Dim jobPDF As Object
Dim sNomPDF As String
Dim sCheminPDF As String
 
    sNomPDF = "Rapport.pdf"
    sCheminPDF = "MonChemin"
 
    Set jobPDF = CreateObject("PDFCreator.clsPDFCreator")
 
    With jobPDF
        If .cStart("/NoProcessingAtStartup") = False Then
            MsgBox "Initialisation de PDFCreator impossible", vbCritical + vbOKOnly, "PDFCreator"
            Exit Sub
        End If
        .cOption("UseAutosave") = 1
        .cOption("UseAutosaveDirectory") = 1
        .cOption("AutosaveDirectory") = sCheminPDF
        .cOption("AutosaveFilename") = sNomPDF
 
        '0=PDF, 1=Png, 2=jpg, 3=bmp, 4=pcx, 5=tif, 6=ps, 7=eps, 8=txt
        .cOption("AutosaveFormat") = 0
        .cClearCache
    End With
 
    ActiveDocument.PrintOut copies:=1, ActivePrinter:="PDFCreator"
 
    'Fichier dans la file d'attente
    Do Until jobPDF.cCountOfPrintjobs = 1
        DoEvents
    Loop
    jobPDF.cPrinterStop = False
 
    'Attendre que la file d'attente soit vide
    Do Until jobPDF.cCountOfPrintjobs = 0
        DoEvents
    Loop
    jobPDF.cClose
    Set jobPDF = Nothing
End Sub
Nowoday est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 12h38   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Il semblerait que ce soit ActivePrinter qui pose problème, cet argument n'est pas pris en compte.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 12h40   #5
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
La méthode ActivePrinter s'applique à l'application et pas au document.

Code :
Word.Application.ActivePrinter = "pdfcreator"
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 12h47   #6
Invité régulier
 
Inscription : juin 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 23
Points : 6
Points : 6
Hehe !! C'est exactement ce que je viens de faire. Et ... ben ca marche tjs pas par contre ca n'engendre plus d'erreur. La macro execute bien PDFCreator mais elle se bloque. Quand j'arrete la macro manuellement il m'ouvre la fenetre me demandant le nom du fichier, repertoire et tout ca. Il semblerait donc que les données ne sont pas prises en compte. Je joints le log de PDFCreator.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
07/08/2007 12:46:56: PDFCreator Program Start
07/08/2007 12:46:56: Windowsversion: Windows XP 5.1 Build 2600 (Service Pack 2) [TerminalServer WinXP WinXPProEdition WinXPSP2]
07/08/2007 12:46:56: UseINI: False
07/08/2007 12:46:56: InstalledAsServer: False
07/08/2007 12:46:56: MyAppData: C:\Documents and Settings\pnowodzienski\Application Data
07/08/2007 12:46:58: PDFCreator Program End
07/08/2007 12:47:00: PDFCreator Program Start
07/08/2007 12:47:00: Windowsversion: Windows XP 5.1 Build 2600 (Service Pack 2) [TerminalServer WinXP WinXPProEdition WinXPSP2]
07/08/2007 12:47:00: UseINI: False
07/08/2007 12:47:00: InstalledAsServer: False
07/08/2007 12:47:00: MyAppData: C:\Documents and Settings\pnowodzienski\Application Data
Nowoday est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 13h13   #7
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Malheureusement, c'est un problème PDFCreator, déjà que pour word c'est pas facile, alors pour un autre soft

Sur le site de cafeine, il y a un tuto sur PDFCreator et Access, peut-être y trouveras-tu une solution.

http://cafeine.developpez.com/
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 13h24   #8
Invité régulier
 
Inscription : juin 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 23
Points : 6
Points : 6
Je suis un peu perdu. A ton avis quelle genre de paramètres je devrais modifier ?

Et par simple curiosité, pourquoi la gestion d'impression est différente sur Excel et Word ?
Nowoday est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 13h37   #9
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Juste une question ?

La référence PDFCreator est-elle bien cochée ?
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 13h53   #10
Invité régulier
 
Inscription : juin 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 23
Points : 6
Points : 6
Oui .
La je suis en train de regarder la discussion http://www.developpez.net/forums/sho...d.php?t=211931
mais je ne comprends pas trop bien. Comment nomme-t-on une classe ?
Nowoday est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h47.


 
 
 
 
Partenaires

Hébergement Web