le programme est architecturé autour du contrôle WebBrowser dans un formulaire mais ça marche avec IE:
je plante le décor:
lorsque je click sur start, le programme me propose d'ouvrir un fichier Excel contenant les liens internet ainsi que le nom du PDF.
FEX = BrowseForFile(Range("PATH"), "Excel File (*.xls);*.xls", "Open Workbook")
de charger WebBrowser avec l'URL
1 2
| Me.WebBrowser1.Navigate MyRange(L, 1).Value
SavePdf = MyRange(L, 3) & ".pdf" |
d'attendre le chargement complet de la page
Loop Until Me.WebBrowser1.busy = False
de sélectionner et copier dans le presse papier la totalité de page
1 2
| WebBrowser1.ExecWB OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT
WebBrowser1.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT |
de créer un nouveau document Word
1 2 3 4
| Dim ObjWord As Object
Set ObjWord = CreateObject("Word.Application")
ObjWord.Visible = False
Set Doc = ObjWord.Documents.Add |
de coller le presse papier dans Word
ObjWord.Selection.PasteAndFormat wdFormatOriginalFormatting
après un traitement de mise en page (et éventuellement dans ton cas de suppression de valeures) dans Word, je sauvegarde le doc et je l'imprime en pdf
PdfCr PathSavePdf, SavePdf, ObjWord.ActiveDocument
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Sub PdfCr(NomDir As String, NomFichier As String, Doc As Object)
Dim clExp As ExportPDF
Supprimer_Fichier_RD NomDir & NomFichier
Supprimer_Fichier_RD NomDir & Replace(NomFichier, ".pdf", ".doc")
Doc.SaveAs NomDir & Replace(NomFichier, ".pdf", ".doc")
'
Set clExp = New ExportPDF
'
clExp.NomDir = NomDir
clExp.NomFichier = NomFichier
clExp.ChemDocComplet = NomDir & Replace(NomFichier, ".pdf", ".doc")
'
clExp.ConversionPDF
'
Set clExp = Nothing
End Sub |
pour ce faire, j'utilise une classe fourni par bibi (modérateur sur ce forum).
1 2 3 4 5 6 7 8 9
| Set clExp = New ExportPDF
'
clExp.NomDir = NomDir
clExp.NomFichier = NomFichier
clExp.ChemDocComplet = NomDir & Replace(NomFichier, ".pdf", ".doc")
'
clExp.ConversionPDF
'
Set clExp = Nothing |
Partager