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 :

Récupération d'un PDF dans le navigateur Internet Explorer via VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2018
    Messages : 9
    Par défaut Récupération d'un PDF dans le navigateur Internet Explorer via VBA
    Bonjour à toute la communauté!

    Ceci est mon premier message et après des centaines d'heures de lecture je tiens à vous remercier pour le partage de vos connaissances!

    J'écris ce message, car, après plusieurs heures de recherche je ne trouve pas ma solution, si il y en a une bien-sûr.

    J'explique :

    Je cherche à récupérer (enregistrer sur l'ordinateur) un PDF qui est surement généré par Javascript ou récupéré sur un serveur, il n'y a donc pas de lien propre à celui ci.
    Il 'affiche dans une une fenêtre internet explorer de type Popup dans un lecteur de PdF (C'est un lecteur PdF intégré à la page HTML je crois).
    D'après mes recherches, ce lecteur ce situe dans une "frame" ou "iframe".
    Avec un espion, ça me donne en souvenir "objet non géré" ou "inconnu".

    Ma question est que je souhaiterai savoir s'il est possible de récupérer ce fichier PDF dans ce genre de situation (qui est dans un lecteur intégré à une page HTML) via VBA.

    Je pourrais ramener d'autres informations dans les 2 jours qui viennent tout en sachant que c'est un logiciel dans intranet et que ne pourrais pas tout divulguer.

    Dite moi quelles informations pourraient vous être utiles.

    Merci de m'avoir lu !

    Bon weekend!

    Cordialement,

    Jérémy

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    retrait/
    Inscrit en
    Février 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Canada

    Informations professionnelles :
    Activité : retrait/

    Informations forums :
    Inscription : Février 2019
    Messages : 9
    Par défaut
    Voici un exemple de code VBA qui récupère un fichier PDF qui s'affiche dans une fenêtre dans une page HTML.

    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
     
      Sub Test2()
      Dim myIE As Object
      Dim Doc As Object
      Dim items As Object
      Dim Item As Object
      Dim srcPath As String
      Dim srcName As String
         Set myIE = CreateObject("InternetExplorer.Application")
         myIE.navigate "https://msu.edu/~urban/sme865/resources/embedded_pdf.html"
         myIE.Visible = True
         Call WaitWeb(myIE)
         Set Doc = myIE.document
         Set items = Doc.getElementsByTagName("embed")  '.getellementbyid("embed")
         Set Item = items(0)
         srcPath = Item.src
         srcName = Mid(srcPath, InStrRev(srcPath, "/") + 1)
         Call DownloadFile(srcPath, "C:\" & srcName)
         myIE.Quit
      End Sub
     
      Private Sub WaitWeb(ByRef IE As Object)
      ' Parameter: Web Browser info
         Do
            DoEvents
         Loop While IE.Busy Or (IE.readyState <> 4)
      End Sub
     
      Sub DownloadFile(ByVal myURL As String, ByVal myFilePath As String)
      ' First parameter : location of the file on the internet
      ' Second parameter: location of the file on the PC
      Dim WinHttpReq As Object
         Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
         WinHttpReq.Open "GET", myURL, False   ', "username", "password"
         WinHttpReq.send
     
         If WinHttpReq.Status = 200 Then
            Set oStream = CreateObject("ADODB.Stream")
            oStream.Open
            oStream.Type = 1                                  ' 1 = binary, 2=type
            oStream.Write WinHttpReq.responseBody
            oStream.SaveToFile myFilePath, 2 ' 1 = no overwrite, 2 = overwrite
            oStream.Close
         End If
      End Sub

  3. #3
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2018
    Messages : 9
    Par défaut Erreur
    Bonjour,

    J’ai déjà essayé, mais le problème dès que je veux accéder au doucement de la frame Qui contient le PDF j’ai une erreur d’execution qui apparaît :

    «*cette interface n’est pas prise en charge*»

Discussions similaires

  1. [Article] Manipulation d'Internet Explorer via VBA
    Par Qwazerty dans le forum Contribuez
    Réponses: 116
    Dernier message: 13/02/2020, 15h47
  2. Manipulation d'Internet Explorer via VBA
    Par pegase33 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/04/2018, 09h49
  3. Manipulation d'Internet Explorer via VBA
    Par jll13 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/01/2013, 19h24
  4. probleme Manipulation d'Internet Explorer via VBA
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/03/2012, 20h36

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