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 :

Comment cliquer sur un bouton HTML sans ID


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 16
    Points : 2
    Points
    2
    Par défaut Comment cliquer sur un bouton HTML sans ID
    Bonjour à tous,

    J'essaye depuis une macro VBA de cliquer sur un lien hypertexte dans une page HTML mais celui-ci ne possède pas de ID:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a class="homeMenu" onclick="startBusyBox();this.style.cursor='wait' ;document.body.style.cursor='wait' ;" href="/CCCWeb/filterClientListFromDefineAsOf.do?do=clientMenu">

    j'ai essayé la methode suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set IEDoc= IE.document
    IEDoc.parentWindow.execScript "startBusyBox()", "Jscript"
    mais j'ai l'erreur suivante:
    Run-time error '-2147352319 (800201001)":

    Automation error
    Comment puis-je faire?

    Merci d'avance pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Pour information les instructions JavaScript ce termine toujours par [;].

    Tu ne donnes pas ce qu'il est véritablement utile pour te répondre ,

    En effet tu connais l'URL elle est écrite dans le href du <a>.

    Il est possible que ce lien soit contenu dans un <form>
    Dans ce ca tu affecte l'URL a la propriété action du formulaire et tu le sumith

    http://www.developpez.net/forums/d14...e/#post7893073
    Dernière modification par Invité ; 08/07/2015 à 18h01.

  3. #3
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    Bonjour Rdurupt et merci pour ta réponse,

    Oui j'ai vu le lien dans la href mais je voulais tout de même cliquer sur le bouton pour que ça fasse plus "propre" plutôt que d'afficher la page web directement.

    Je joins le début du code HTML si ça peut aider: Nom : pageHtmlGce.png
Affichages : 1985
Taille : 68,0 Ko

    En ce qui concerne le javascript, j'ai adapté ce que j'ai trouvé sur le tutoriel DVP: http://qwazerty.developpez.com/tutor...a-excel/#LIV-D

    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
    VBA
    Sélectionnez
    Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
     
    Sub ScriptScienceActu()
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim yNumActu As Byte
     
       'Ouvre la page Web + Affiche IE + Attente
       IE.Navigate "http://www.science.gouv.fr/"
       IE.Visible = True
       WaitIE IE
     
       'On pointe le document
       Set IEDoc = IE.document
     
       'On boucle de 2 à 5
       For yNumActu = 2 To 5
          'On exécute le script showActu 'Attention à la Casse!!!! showActu
          IEDoc.parentWindow.execScript "showActu(" & yNumActu & ")", "JavaScript"
          'On laisse 2 secondes au lecteur
          Sleep 2000
       Next
     
       Set IE = Nothing
       Set IEDoc = Nothing
    End Sub
    Merci!

  4. #4
    Invité
    Invité(e)
    Par défaut
    La méthode OnClik ne fait pas autre chose au ce au je t'ai dis

    Moi dans ce cas de figure,je sauvegarde le script html dans un fichier je teste mon javascript dans le ficher, on s'affranchit vba !

  5. #5
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    Ouais mais le problème c'est que je dois utiliser excel et VBA, je ne peux pas me servir de javascript...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Tu as regardé le lien que je t'ai donné?
    C'est de l'Excel vba!

    Il y plus méthode pour injecter du javascript,elles dépendent de la configuration du code HTML, en revanche ce sera toujours le même script java. Donc tu divise le travail en 2 si ton script fonction dans un fichier HTML il te reste a évaluer comment le faire fonctionner en vba!
    Dernière modification par Invité ; 08/07/2015 à 22h47.

  7. #7
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    Oui j'ai vu le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IE.Document.parentWindow.execScript "javascript:document.leform.compte.value='Login';"
    Mais je ne sais pas trop comment l'adapter dans mon cas (je suis débutant en VBA et JS)

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    d'abord, copies ta source html dans un fichier html .

    écris un Script qui exécute ce que tu veux faire.

    un fois que ce script fonctionne exécute le via VBA!

    Code toto.html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <html>
    <headers><title>toto</title></headers>
    <Body>
    	<Form name='frm'>
    	<Form>
    </Body>
    </html>
    <script langage='javascipt'>
    if(confirm('Recharger la page')==true){
    this.document.frm.Action='toto.html';
    this.document.frm.submit();
    }
    </script>
    Dernière modification par Invité ; 09/07/2015 à 10h45.

  9. #9
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Merci pour ton aide rdurupt, mais je viens de m'appercevoir que quasiments tous les boutons de la page appellent une fonction javascript. Par exemple j'ai une liste déroulante où je peux selectionner mon client et voilà le code derrière:

    Nom : pageHtmlSearchClient.png
Affichages : 1897
Taille : 74,1 Ko

    Donc là encore il faut que j'appelle la finction changeSearchBy() mais je n'arrive pas à executer la fonction depuis VBA...

  10. #10
    Invité
    Invité(e)
    Par défaut
    tu trouvera un exemple pour sélectionner des combobox Ici

    sur Lur:http://www2.leboncoin.fr/ai/form/1?ca=18_s

  11. #11
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    Ok merci mais c'est galère si à chaque fois que je veux selectionner une option sur la page ou appuyer sur un bouton je dois faire un fichier javascript.

    Pourquoi je ne peux pas directement lancer les fonctions JS depuis VBA? Ça me parait beaucoup plus simple

  12. #12
    Invité
    Invité(e)
    Par défaut
    UI Tu n'as rien compris! Ton fichier n'est utile que Pour tester

    ton scrip, bien sur après tu le fais dans Vba.

    Si tu est capable de le faire directement dans Vba, pas de problème,moi je transite toujours par un fichier!
    De toutes les façons il faudra toujours analyser le code source

  13. #13
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    Oui, à vrai dire je n'ai pas bien compris ta méthode...Et je suis débutant en VBA et casi 0 en JavaScript.

    J'essaye juste d'appliquer la méthode du tutoriel de DVP et d'appeller directement les fonctions Javascript du site web. Aussi je n'ai pas accès au code Javascript des fonctions qui sont sur la page web. Elle a été developpée par qqn d'autre.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Désolé je la connais pas, je connais que la méthode RD��

  15. #15
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2015
    Messages : 16
    Points : 2
    Points
    2
    Par défaut
    ok merci quand même

  16. #16
    Invité
    Invité(e)
    Par défaut
    Mois je viens du web je te donnes des vielles méthodes de développeurs web

    Le fait de sélectionner une valeur dans ta combobox appellera l'événement onchange qui lui exécutera changeSearchBy()

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/07/2011, 19h46
  2. Fermer la fenêtre des préférences sans cliquer sur le bouton Cancel
    Par Laurent.B dans le forum Eclipse Platform
    Réponses: 7
    Dernier message: 22/01/2010, 22h12
  3. Lancer une action struts sans cliquer sur un bouton submit
    Par cryosore94 dans le forum Struts 1
    Réponses: 10
    Dernier message: 22/03/2009, 16h08
  4. Faire un submit sans cliquer sur le bouton.
    Par babalastar dans le forum JSF
    Réponses: 3
    Dernier message: 27/03/2007, 10h02
  5. Réponses: 2
    Dernier message: 07/06/2006, 09h29

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