XL 2010 VBA Impression avec PDFCreator

E

EricDES

Guest
Bonjour à tous,

Je suis nouveau sur le site et pas (encore) archi-balèze avec Excel VBA.

Quelqu'un peut-il m'aider ?

Ma question :

Aujourd'hui, ma macro se charge de créer un onglet dans Firefox d'un lien hypertexte d'une cellule Excel.
Ce lien hypertexte de la cellule Excel correspond à un fichier .pdf que je récupère ...
Ça, ça marche !
Un fichier .pdf s'affiche dans un onglet Firefox, tout va bien.

(mais je dois faire 'Enregistrer sous' dans Firefox pour chaque onglet Firefox créé pour me créer le fichier .pdf sur mon disque dur . Pas terrible !)

Et des fichiers .pdf à récupérer et à créer sur mon disque... j'en ai beaucoup beaucoup beaucoup (~1000).

J'aimerais savoir comment faire (si c'est possible) pour ne pas créer un nouvel onglet dans Firefox pour chaque .pdf à créer mais plutôt créer un fichier .pdf sur mon disque directement (via PDFCreator (ou autres ?) avec nom du fichier .pdf défini par moi dans un répertoire du disque dur que je définis moi-même).

C'est possible ?
(J'espère avoir été clair ...)

Je suis sous Windows 7 édition 32 bits
Excel 2010.

Merci pour l'aide (au cas où :) ).
 
Solution
Re, au plus simple, si j'ai bien compris, à toi de l'adapter à ton contexte : Feuil1.Cells(1, 1) contient le lien
Ceci pourra s'étoffer via une liste des liens, la création auto de dossiers, le traitement des doublons éventuels, si ce dernier ok.
VB:
Option Explicit

Private Declare Function URLDownloadToFileA Lib "urlmon" (ByVal pCaller As Long, _
                                                          ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, _
                                                          ByVal lpfnCB As Long) As Long

Sub Test()
    'Feuil1.Cells(1, 1) avec "https://file-examples-com.github.io/uploads/2017/10/file-sample_150kB.pdf"
    DownloadFile Feuil1.Cells(1, 1), ThisWorkbook.Path...

kiki29

XLDnaute Barbatruc
Salut, de la lecture ici ( 21 pages )
Une aide via le fichier en pj pour naviguer dans le Bazar. Des échantillons ( sans données confidentielles ) aiderait.

Liste_Contributions_PDF

Pour Firefox il faut utiliser Sélénium :
  • Selenium IDE : c'est une extension de Firefox, qui permet d'enregistrer une suite d'actions, qu'il sera possible de rejouer à volonté.
  • Selenium WebDriver : il s'agit cette fois d'une API, disponible pour plusieurs langages, permettant de programmer des actions sur l'interface, et à vérifier les réponses. Les actions à réaliser peuvent être exportées depuis Selenium IDE.
Étant définitivement fâché avec le Belge et son mignon de couchette de Developpez.com, quelle paire de lucioles ( une anagramme ),j'ai supprimé l'ensemble des téléchargements ( 110 au bas mot ), d'où les liens internes de téléchargement caduques. Ces téléchargements sont toujours disponibles sur mon PC, si quelqu'un en fait la demande.
 
Dernière édition:

kiki29

XLDnaute Barbatruc
Re, au plus simple, si j'ai bien compris, à toi de l'adapter à ton contexte : Feuil1.Cells(1, 1) contient le lien
Ceci pourra s'étoffer via une liste des liens, la création auto de dossiers, le traitement des doublons éventuels, si ce dernier ok.
VB:
Option Explicit

Private Declare Function URLDownloadToFileA Lib "urlmon" (ByVal pCaller As Long, _
                                                          ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, _
                                                          ByVal lpfnCB As Long) As Long

Sub Test()
    'Feuil1.Cells(1, 1) avec "https://file-examples-com.github.io/uploads/2017/10/file-sample_150kB.pdf"
    DownloadFile Feuil1.Cells(1, 1), ThisWorkbook.Path & "\" & "Test.pdf"
End Sub

Private Function DownloadFile(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
    lngRetVal = URLDownloadToFileA(0, URL, LocalFilename, 0, 0)
    If lngRetVal = 0 Then DownloadFile = True
End Function
 
Dernière édition:
E

EricDES

Guest
Salut, de la lecture ici ( 21 pages )
Une aide via le fichier en pj pour naviguer dans le Bazar. Des échantillons ( sans données confidentielles ) aiderait.

Téléchargement PDFCreator 1.7.3

Pour Firefox il faut utiliser Sélénium :
  • Selenium IDE : c'est une extension de Firefox, qui permet d'enregistrer une suite d'actions, qu'il sera possible de rejouer à volonté.
  • Selenium WebDriver : il s'agit cette fois d'une API, disponible pour plusieurs langages, permettant de programmer des actions sur l'interface, et à vérifier les réponses. Les actions à réaliser peuvent être exportées depuis Selenium IDE.

Merci pour ton aide et pour ta réactivité ;).
Je garde ta solution en mémoire.
A tester ...

Merci beaucoup.
 
E

EricDES

Guest
Re, au plus simple, si j'ai bien compris, à toi de l'adapter à ton contexte : Feuil1.Cells(1, 1) contient le lien
Ceci pourra s'étoffer via une liste des liens, la création auto de dossiers, le traitement des doublons éventuels, si ce dernier ok.
VB:
Option Explicit

Private Declare Function URLDownloadToFileA Lib "urlmon" (ByVal pCaller As Long, _
                                                          ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, _
                                                          ByVal lpfnCB As Long) As Long

Sub Test()
    'Feuil1.Cells(1, 1) avec "https://file-examples-com.github.io/uploads/2017/10/file-sample_150kB.pdf"
    DownloadFile Feuil1.Cells(1, 1), ThisWorkbook.Path & "\" & "Test.pdf"
End Sub

Private Function DownloadFile(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
    lngRetVal = URLDownloadToFileA(0, URL, LocalFilename, 0, 0)
    If lngRetVal = 0 Then DownloadFile = True
End Function
Lorem ipsum !!!! Super !!! :cool:;)
 

kiki29

XLDnaute Barbatruc
Salut, suite et fin ? Au diable les varices, cela fonctionne pour tous les types de fichiers.
La liste et sa lecture démarre de la 2eme ligne, celle située en dessous de "Liens".
Par défaut j'ai coché "Gestion Doublons ?" càd que cela se traduira par un indice de 001 à xxx s'il y en a. De même si le téléchargement ne peut se faire, un "X" apparaitra dans la cellule en face du fautif..
 

Pièces jointes

  • Download File from Web 02.png
    Download File from Web 02.png
    63 KB · Affichages: 28
  • Doublons.png
    Doublons.png
    14.7 KB · Affichages: 18
  • Download File from Web 02.zip
    19.9 KB · Affichages: 9
  • Fautif.png
    Fautif.png
    23.8 KB · Affichages: 24
Dernière édition:
E

EricDES

Guest
Salut, suite et fin ? Au diable les varices, cela fonctionne pour tous les types de fichiers.
La liste et sa lecture démarre de la 2eme ligne, celle située en dessous de "Liens".
Par défaut j'ai coché "Gestion Doublons ?" càd que cela se traduira par un indice de 001 à xxx s'il y en a. De même si le téléchargement ne peut se faire, un "X" apparaitra dans la cellule en face du fautif..
Merci pour ta solution en VBA Excel 2010 - Windows 7 32 bits.
Ça marche nickel.
C'est intégré dans ma macro.
Impec'.
C'est exactement ce que je voulais faire ... sauf que seul ... j'aurais pu chercher longtemps !!! ;)
Merci, merci.
 

kiki29

XLDnaute Barbatruc
Salut,
suite et fin ?
Pour une meilleure lisibilité.
Le dossier PDFs rebaptisé en Fichiers.
La liste des liens à mettre dans la 2eme colonne et non plus la 1ere.
L'indication qu'un téléchargement ne peut se faire sera un "X" dans la cellule de la 1ere colonne des fautifs.
De même un doublon apparaîtra via un "D" dans la 1ere colonne si "Gestion Doublons ?" cochée.
 

Pièces jointes

  • Download File from Web 04.png
    Download File from Web 04.png
    92.1 KB · Affichages: 28
  • Download File from Web 04.zip
    20.3 KB · Affichages: 4
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 094
Messages
2 116 150
Membres
112 670
dernier inscrit
Flow87