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 Interaction avec IE : Gestion de [Form] avec plusieurs [Submit]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2013
    Messages : 4
    Par défaut VBA Interaction avec IE : Gestion de [Form] avec plusieurs [Submit]
    Bonjour à tous !

    Je bidouille un peu en vba et j'aimerais arriver à manipuler une feuille web depuis un doc Excel. Plus précisément j'aimerais télécharger un contenu avec un code vba.

    Je me suis inspiré de l'excellent didacticiel : http://qwazerty.developpez.com/tutor...excel/#LIV-B-3 grâce auquel je suis arrivé à mon but, mais, car bien sûr il y a un « mais » d’où l’objet de mon message, la structure du site web et IE m'empêche d'arriver à mes fins : je m'explique :

    Grace au didacticiel je suis arrivé à faire ce code :
    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
    Sub PremierIE()
    'Déclaration des variables
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim Exportbutton As HTMLInputElement
     
    'Chargement d'une page web Google
       IE.navigate "monsiteweb.com"
     
    'Affichage de la fenêtre IE
    IE.Visible = True
     
    WaitIE IE
    'On pointe le membre Document
    Set IEDoc = IE.document
     
    'On pointe notre bouton
    Set Exportbutton = IEDoc.all("export")
     
    'On simule un clic
    Exportbutton.Click
     
    'On attend la fin de la recherche
    WaitIE IE
     
    'On libère la variable IE
    'Set IE = Nothing
     
    'On ferme la variable IE
    IE.Quit
     
    End Sub
     
    Sub WaitIE(IE As InternetExplorer)
       'On boucle tant que la page n'est pas totalement chargée
       Do Until IE.readyState = READYSTATE_COMPLETE
          DoEvents
       Loop
    End Sub
    Il me permet de simuler un clic sur le bouton et lancer le téléchargement de mon fichier.
    MAIS Internet Explorer m'empêche alors de télécharger le fichier en affichant un petit ruban jaune en haut de ma page web :
    "To help protect your security, Internet Explorer blocked this site from downloading files to your computer."

    Après des recherches sur le net, j'ai trouvé que si on ajouté le site web à ses sites autorisés dans l'onglet sécurité de IE ça désactive ce message : le problème est que mon entreprise à désactivé l'accès à l'onglet sécurité !
    Du coup : Est-ce que quelqu'un sait comment désactiver ce message de sécurité ou comment le gérer depuis vba ? Je n'ai pas trouvé

    Autre solution envisagé :

    J'ai lu dans le didacticiel que l'on pouvait aussi soumettre le formulaire plutôt que simuler un clic sur un bouton. Dans ma page web, les codeurs on inclut ce code dans leurs form :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="/00OU00000019RdZ" id="report" method="POST" name="report" onsubmit="if (window.ffInAlert) { return false; }">
    En effet lorsqu'on clic manuellement, et pas depuis vba, sur le bouton télécharger, on n'a pas de message d'erreur grâce à ce code. Je pense donc que si j'arrive à "submit" le formulaire depuis VBA je n'aurais plus mon problème.

    MAIS car il y a toujours un mais, je n’y arrive pas car à submit le formulaire car il contient 2 boutons submit :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input value="Export" class="btn" title="Export" name="export" type="submit">
    <input value=" Done " class="btn" title="Done" name="cancel" type="submit">
    Et manque de chance quand je submit le form "report" avec ce code :

    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
    Sub PremierIE2()
    'Déclaration des variables
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim Exportbutton As HTMLFormElement
     
    'Chargement d'une page web Google
    IE.navigate "monsiteweb"
     
    'Affichage de la fenêtre IE
    IE.Visible = True
     
    WaitIE IE
     
    'On pointe le membre Document
    Set IEDoc = IE.document
     
    'On pointe notre bouton
    Set Exportbutton = IEDoc.all("report")
     
    'On simule un clic
    Exportbutton.submit
     
    'On attend la fin de la recherche
    WaitIE IE
     
    'On libère la variable IE
    'Set IE = Nothing 
    'On ferme la variable IE
    IE.Quit
    Et bien ce n'est pas le bouton "export" qui est activé mais le bouton "done". D'où ma question sauriez-vous comment choisir le bouton, l'input, qui s'active lorsque que je "submit" le formulaire ??

    J'espère que j'aurais été assez clair dans le descriptif de ma problématique, n'hésitez pas à me poser des questions complémentaire si t'elle n'est pas le cas.

    Je vous remercie d'ores et déjà pour le temps accordé à la lecture de mon message.

    Bien à vous,

    Raphael.

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    avec un getelementsbyname

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2013
    Messages : 4
    Par défaut
    Merci pour ta réponse mais pourrais tu être plus précis ?

    De ce que j'ai pu essayer même si je selectionne l'input "export" je ne peux pas le "submit" car il n'est pas de type [form] !

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Essaie cela..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IE.document.forms(0).submit
    Sinon tu as le nom de ton bouton tu peux l'appeler et clicker dessus avec getelementsbyname...

    Si cela ne marche pas, tu es parti pour mettre un espion dans ton IE, trouver l'item correspondant à ton bouton dans all.. et cliquer dessus

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2013
    Messages : 4
    Par défaut
    Désolé je m'aperçois que j'ai dû ne pas être clair dans le descriptif de mon problème :

    Pour revenir aux FORM, j'ai essayé ta solution mais je retrouve le même problème : cela submit l'ensemble du Formulaire, hors il contient 2 boutons, deux input différents, et ce n'est pas le bon bouton qui se s’active automatiquement lors du submit du form: la question serait donc comment submit le premier bouton du formulaire ??

    Quand a ce qui est de simuler un clic, j'y arrive sans problème sur le bon bouton mais cela me ramène à ma première problématique : Comment désactiver ou gérer le message d'erreur de IE : "To help protect your security, Internet Explorer blocked this site from downloading files to your computer." Aurais-tu une solution dans ce sens ?

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 111
    Par défaut
    Salut


    En tapant ton message d'erreur ("To help protect your security, Internet Explorer blocked this site from downloading files to your computer.") sur google, tu auras plusieurs sites te proposant des solutions à ton problème.

    Pour le reste, je suppose qu'il ne t'ai pas possible de donner le code source de la page?

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. Gestion des Forms avec différents OS cibles
    Par Invité dans le forum Composants FMX
    Réponses: 2
    Dernier message: 12/10/2014, 10h12
  2. [AC-2010] Forme avec macro dans une forme avec bouttons de nav
    Par nico_fr83 dans le forum IHM
    Réponses: 0
    Dernier message: 15/05/2010, 20h48
  3. Gestion de form avec Backgroundworker
    Par Masmeta dans le forum Windows Forms
    Réponses: 1
    Dernier message: 15/04/2010, 22h23
  4. Réponses: 4
    Dernier message: 01/09/2007, 12h22
  5. Réponses: 3
    Dernier message: 07/02/2006, 13h25

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