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 :

VBA et internet explorer - ouvrir un fichier téléchargé


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Par défaut VBA et internet explorer - ouvrir un fichier téléchargé
    Bonjour à tous,

    J'utilise le code suivant dans vba pour faire les actions suivantes :

    1)Ouvrir un site web sécurisé en y mettant mes login/password

    2)naviguer sur ce site jusqu'à la page désirée

    3)lancer l'ouverture/téléchargement d'un fichier excel de statistiques contenu sur ce site.

    Mon problème se situe suite à l'ouverture de ce fichier, car internet explorer m'ouvre une boite de dialogue pour me demander si je souhaite ouvrir ou télécharger ce fichier.

    Je souhaite l'ouvrir mais n'arrive pas à trouver un bout de code pour le faire.

    Help !

    Mon code pour ceux que ça pourrait intéresser :


    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
    Sub NaviguerPageWeb() 
     
    Dim IE As InternetExplorer 
    Dim maPageHtml As HTMLDocument 
    Dim Helem As IHTMLElementCollection 
     
    Set IE = CreateObject("internetExplorer.Application") 
    IE.Visible = True 
    IE.navigate "https://xxx" 
    Do Until IE.readyState = READYSTATE_COMPLETE 
    DoEvents 
    Loop 
    Set maPageHtml = IE.document 
    Set Helem = maPageHtml.getElementsByTagName("input") 
    For a = 0 To Helem.Length - 1 
    If Helem(a).getAttribute("name") = "userid" Then 
    Helem(a).innerText = "userid" 
    End If 
    If Helem(a).getAttribute("name") = "password" Then 
    Helem(a).innerText = "password" 
    SendKeys "{ENTER}", True 
    End If 
    Next 
     
    Do Until IE.readyState = READYSTATE_COMPLETE 
    DoEvents 
    Loop 
     
    IE.navigate "https://xxx" 
     
    Do Until IE.readyState = READYSTATE_COMPLETE 
    DoEvents 
    Loop 
     
    IE.navigate "https://xxx.action" ' lance le téléchargement du fichier excel

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,
    à toutes fins utiles, l'excellent tuto de Qwazerty sur IE et VBA
    http://qwazerty.developpez.com/tutor...-et-vba-excel/
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    bonjour

    le code est relativement correcte mis a part une chose

    si tu utilise la simulation sendkey tu dois prendre le focus de l'élément input d'abord

    cela dis il y a une meilleur solution

    c'est repérer l'élément bouton certainement de type "submit" et runner sa propre fonction

    tu a certainement ça dans le tuto de qwazerty


    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Par défaut
    Bonjour et merci pour vos premiers commentaires.

    J'avais déjà parcouru le magnifique tuto de QWAZERTY qui est une grande bible d'informations mais qui hélas ne m'a pas aidé pour mon problème actuel.

    Clicker sur un bouton/objet dans la page ie ne me pose pas trop de soucis, c'est au niveau de la boite de dialogue d'IE que je coince.

    Lors du téléchargement du fichier IE me propose en effet d'ouvrir ou enregistrer le fichier (en bandeau en bas de page) et je n'arrive pas à lui dire d'ouvrir ce fichier csv.

    Ce bandeau n'étant pas dans le code source de la page (c'est un paramètre de sécurité d'IE) je ne trouve pas le nom du bouton pour le pointer.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour c'est vrai je n'avais pas penser au bandeau d'en bas
    je ne sais pas si comme pour excel il existe pas un
    application .displayalerts=false
    il faudrait voir si par macro on pourrait pas désactiver ce truc
    telecharger
    et réactiver

    intéressant je vais faire une recherche

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    oupss

    je viens d'y penser !!!

    il y a peut etre une meprise dans la methode mais je n'en suis pas sur!!!!

    est tu obligé de cliqué?

    si le lien est present sur la page

    en passant par le href et non pas le innertext n'a tu pas la possibilité de le telecharger?

    je cherche je cherche

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, il y a aussi ceci à adapter à ton contexte

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Par défaut
    Bonjour,

    Le fichier csv est créé à la volée par le site en fonction des paramètres de la page, il n'est pas stocké en pdf/excel ou autre format donc je ne peux pas tricher en le téléchargeant directement,

    En plus je suis obligé de me connecter à un site avec login/mot de passe (éjection toutes les 10 minutes) puis aller sur une page de fichiers clients puis clicker sur un bouton pour générer le fichier en csv

    et là IE me propose donc de l'ouvrir ou de le télécharger.

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    rebonjour

    pour le lien que kiki29 t'a donné il faut avant tout comme je t'ai dis récupérer le lien par le href de le "htmlélement"
    maintenant si ca n'est pas un fichier mais un tableau ou un document remplissable dynamiquement
    il va te falloir récupérer le lien vers ce document toujours par le href
    et refaire une moulinette comme tu a fait pour saisir tes login et mdp pour trouver les éléments

    ensuite une fois que tu est dans la moulinette dans cette boucle insérer l'édition d'un fichier txt avec l'insertion des éléments que tu sauvera au format html par exemple

    mais c'est du bouleau!!!!!
    y a de la migraine en vue
    j'espère que tu n'est pas allergique au paracetamol

    a moins que:

    ce document soit dans une iframe
    au quel cas
    tu ouvre un fichier text toujour dans ta moulinette qui va te trouver le "href de ce dis document tu y met tes balises classiques et en body tu y met src=lelien de ce dis document.le nom de la iframe c'est assez volatile
    mais puisque c'est un document qui est sensé etre mis a jour régulierement
    ca peut t'eviter beaucoup de code a chaque fois que tu ouvrira ce fichier il aura la derniere mis en jour en temps et en heure

    bon courage
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Par défaut
    Mon seul problème c'est que contrairement à la zone ou je me saisissais login et mdp je n'ai pas de nom dans mon href mais qu'un lien et une image.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <td width="30px" align="center" onmouseover="return overlib('Télécharger ces données au format CSV', DELAY, 1000, TIMEOUT, 5000);" onmouseout="return nd();">
    					
    <a href="/appli/jsp/page/chxActivationCsvEvt.action"><img src="../../images/eol3/picto_telecharger.gif" border="0"></a>
    					    
    </td
    le fait d'ouvrir l'adresse /appli/jsp/page/chxActivationCsvEvt.action lance le téléchargement (qui se retrouve bloqué par IE).

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re

    en passant je ne sais toujour pas si c'est un fichier ou une partie de de document

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. [XL-2010] VBA - Excel/ internet explorer - Clic bouton dans IE pour export fichier excel
    Par victoireC dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 10/01/2013, 09h39
  2. Excel VBA et Internet explorer 8
    Par Antoine HUG dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 11/07/2009, 09h49
  3. VBA et Internet explorer
    Par sechanbask dans le forum Général VBA
    Réponses: 6
    Dernier message: 27/05/2008, 12h24
  4. [VBA-E] Internet Explorer dans Excel ?
    Par iButton dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/01/2007, 19h13
  5. Réponses: 10
    Dernier message: 15/08/2006, 17h59

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