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

  1. #1
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    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
    Points : 2 553
    Points
    2 553
    Par défaut
    avec un getelementsbyname

  3. #3
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    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
    Points : 2 553
    Points
    2 553
    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
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    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 éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    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

  7. #7
    Nouveau Candidat au 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
    Points : 1
    Points
    1
    Par défaut
    Merci Qwazerty pour ton temps et ta réponse.

    J'ai beaucoup cherché sur le Net depuis maintenant une semaine, apprenant avec didacticiels et forums, et bien sûr que j'ai essayé d'utiliser Google. Cependant les solutions proposées passes soit par l'onglet sécurité des paramètres IS auxquels je n'ai pas access comme je l'ai expliqué dans mon premier message, soit par html lors du codage de la page web : ce qui n'est pas ma problématique; Si tu as trouvé une discussion qui aborde comment gérer le pb depuis VBA je serais enchanté de me basé sur celle-ci !

    En effet je ne peux pas partager l'url qui est sur une page qui nécessite des logins, mais voici le code de mon Form simplifié :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form action="/00OU00000019RdZ" id="report" method="POST" name="report" onsubmit="if (window.ffInAlert) { return false; }">
    [...]
    <td class="pbButtonb" id="bottomButtonRow">
    <input value="Export" class="btn" title="Export" name="export" type="submit"> 
    <input value=" Done " class="btn" title="Done" name="cancel" type="submit">
    </td>
     
    </form>

    Est-ce que cela peut te suffire ?

    Merci encore,

    Raphael.

  8. #8
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut

    Malheureusement avec si peu je vais avoir bien du mal à te guider, enfin te guider, je ne suis même pas sur qu'il y est ou non une solution.

    Si il n'y a pas de donnée sensible mais que tu ne souhaites pas exposer le code source à la vu de tous, je peux juste te proposer de me le transmettre par MP.

    Bonne nuit
    ++
    Qwaz

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