Bonjour,
Jusqu'à présent, j'ai pu grâce à la lecture des différents sujets traités ici résoudre tous mes problèmes avec mes macros, mais là, je tourne en rond et j'ai donc franchi le pas de m'inscrire pour vous exposer mes déboires.
Voici le problème.
J'ai environ 300 docs d'une dizaine de page à imprimer en pdf. J'ai donc fait une macro Excel pour enregistrer les dits fichier en pdf. A l'origine, le principe était le suivant : Ouvrir un fichier, sauvegarder en pdf, fermer le fichier, passer au suivant.
Pas de problème pour générer un fichier pdf, mais contre, la plupart des courbes n'apparaissaient pas (un carré blanc à la place).
J'ai donc tenté une autre approche, qui consiste à ouvrir le doc, scroller les pages une à une, en laissant 2s de pause entre les deux, puis sauvegarder en pdf, fermer le doc et recommence, voici le code :
C'est une concaténation de plusieurs infos que j'ai glanées sur le net.
Mon problème, c'est que malgré la temporisation que j'ai mise (2 ou 5 secondes entre chaque page), ça n'imprime toujours pas toutes les courbes, même s'il y en a beaucoup plus qui s'impriment.
Est ce que vous savez d'où vient le problème, et comment le résoudre ?
Merci.
Jodko.
Jusqu'à présent, j'ai pu grâce à la lecture des différents sujets traités ici résoudre tous mes problèmes avec mes macros, mais là, je tourne en rond et j'ai donc franchi le pas de m'inscrire pour vous exposer mes déboires.
Voici le problème.
J'ai environ 300 docs d'une dizaine de page à imprimer en pdf. J'ai donc fait une macro Excel pour enregistrer les dits fichier en pdf. A l'origine, le principe était le suivant : Ouvrir un fichier, sauvegarder en pdf, fermer le fichier, passer au suivant.
Pas de problème pour générer un fichier pdf, mais contre, la plupart des courbes n'apparaissaient pas (un carré blanc à la place).
J'ai donc tenté une autre approche, qui consiste à ouvrir le doc, scroller les pages une à une, en laissant 2s de pause entre les deux, puis sauvegarder en pdf, fermer le doc et recommence, voici le code :
Code:
Sub ouvrirDocWord_Impression()
'necesite d'activer la reference Microsoft Word xx.x Object Library (dans menu Outils/References)
Dim appWrd As Word.Application
Dim docWord As Word.Document
Dim Fichier As String
Dim NomFichier As String
Dim Dossier As String
Dim Intpos As Byte
Dim nbPages As Integer
Dim i As Integer
Dossier = ThisWorkbook.Path & "\"
ChDrive Dossier
ChDir Dossier
Fichier = Dir(Dossier & "*.docx")
Do While Len(Fichier) > 0
i = 1
Set appWrd = CreateObject("Word.Application") 'creation session Word
appWrd.Visible = True 'pour que word s'ouvre pendant l'operation
Const wdExportFormatPDF = 17
Const wdExportOptimizeForPrint = 0
Const wdExportAllDocument = 0
Const wdExportDocumentContent = 0
Const wdExportCreateNoBookmarks = 0
Intpos = InStrRev(Fichier, ".")
NomFichier = Left(Fichier, Intpos - 1) & ".pdf"
Set docWord = appWrd.Documents.Open(Dossier & Fichier)
nbPages = appWrd.ActiveWindow.Panes(1).Pages.Count
For i = 1 To nbPages
appWrd.ActiveWindow.LargeScroll down:=1
Application.Wait Time + TimeSerial(0, 0, 2)
i = i + 1
Next
docWord.ExportAsFixedFormat outputFileName:=Dossier & "/" & NomFichier, exportFormat:=wdExportFormatPDF
docWord.Close 'fermer le document Word
appWrd.Quit 'fermer la session Word
Fichier = Dir()
Loop
End Sub
C'est une concaténation de plusieurs infos que j'ai glanées sur le net.
Mon problème, c'est que malgré la temporisation que j'ai mise (2 ou 5 secondes entre chaque page), ça n'imprime toujours pas toutes les courbes, même s'il y en a beaucoup plus qui s'impriment.
Est ce que vous savez d'où vient le problème, et comment le résoudre ?
Merci.
Jodko.