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 :

Internet clique javascript:void(0) [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2011
    Messages : 32
    Par défaut Internet clique javascript:void(0)
    Bonjour à tous.

    J’essaie de coder un module en VBA qui ouvre internet explorer, se connecte à une page web puis clique sur un élément de cette page.

    Après plusieurs jours de recherche je suis dans une impasse, impossible de "cliquer" sur cet élément :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a class="kd-button kd-button-red" href="javascript:void(0)" jsaction="mp.createMap" __jsaction="[object Object]" jstcache="0" __jstcache="[object Object]">
    Et la ligne au-dessus :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="mp-create-map" jsdisplay="myplaces.filter==0||myplaces.filter==3" __jsaction="[object Object]" jstcache="41" __jstcache="[object Object]">
    J’ai utilisé cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim IEdoc as HTMLdocument
    IEdoc.parentWindow.execScript "'javascript:void(0)';", "javascript"
    Dans VBE j’ai activé la référence Microsoft_JScript mais rien ne se passe avec ou sans.

    Débutant en VBA je ne suis pas sure de suivre la bonne direction dans mes recherches pour trouver la solution, si quelqu'un peut me venir en aide. Cordialement.

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 122
    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 122
    Par défaut
    Salut
    Essai de cette façon

    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
    Sub LancerScript()
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
     
    	'Ouvre la page WEB + Affiche IE + Attente
    	IE.Navigate "L'adresse de ta page"
    	IE.Visible = True
    	WaitIE IE
     
    	'On pointe le document
    	Set IEDoc = IE.document
     
        'On exécute le script void
        IEDoc.parentWindow.execScript "void(0)", "JavaScript" 'Attention à la casse
     
    end sub	
     
    'OU Lancer un lien hypertext	
    Sub LancerHyper()
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
     
        'Ouvre la page WEB + Affiche IE + Attente
        IE.Navigate "L'adresse de ta page"
        IE.Visible = True
        WaitIE IE
     
        'On pointe le document
        Set IEDoc = IE.document
     
        'On cherche la ligne qui nous interesse
        IEDoc.getElementById("mp-create-map").Children(0).Click
     
    End Sub
     
    Sub WaitIE(IE As InternetExplorer)
    	'On boucle tant que la page n'est pas totalement chargé
    	Do Until IE.ReadyState = READYSTATE_COMPLETE
    		DoEvents
    	Loop
    End Sub
    ++
    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

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2011
    Messages : 32
    Par défaut Un grand merci Qwazerty
    Bonjour Qwazerty,

    Un grand merci à toi grâce à ta réponse après quelques essais voilà ce que j'ai du mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim divHTMLCible As HTMLDivElement
    Set divHTMLCible = IEdoc.getElementById("mp-create-map")
         divHTMLCible.Children(0).Click
    ET CA FONCTIONNE PARFAITEMENT!

    Maintenant j'ai un autre soucis! le formulaire apparait parfaitement et quand on pointe le premier champ à remplir voila ce que j'ai :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div class="label noprint">
    Texte - Titre
    <input tabIndex="100" class="inputField noprint" dir="ltr" maxLength="250" __e_="[object Object]" __jsaction="[object Object]" value="Sans titre"/>
    <span class="noscreen " dir="ltr">
    Texte - Sans titre

    J'ai essayé un code du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IEdoc.all("inputField noprint").Value = "nom de la carte"
    Mais ça ne fonctionne pas! Le débugger me dit
    erreur d'éxecution '91', variable object ou variable de bloc with non définie.
    Est ce que tu pourrais me conseiller?

    En tous cas encore un grand merci à toi ça faisait 3 jours que je bloquais sur le déclenchement du script!

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 122
    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 122
    Par défaut
    Salut
    Il faudrait voir une plus grande partie du code de la page, voir comment elle est organisé.
    Tu ne peux recherché un éléments par id que si la propriété id est renseigné pour cet élément (et c'est pareil pour une recherche par Name).

    ++
    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

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2011
    Messages : 32
    Par défaut code HTML element
    Bonsoir Qwazerty,

    Je vais essayé de suivre ton conseil pour la recherche par élément.

    Sinon voici le code source de l'élément en espérent que ce soit bien ce que tu m'as demandé :
    Code html : 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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Strict//EN"><META http-equiv="Content-Type" content="text/html; charset=utf-8">
     
    <html class="no-maps-mini">
    <head><style>
    body
    {
            color: #000;
            background-image: none;
            background-attachment: scroll;
            background-repeat: repeat;
            background-position-x: 0%;
            background-position-y: 0%;
            background-size: auto;
            background-origin: padding-box;
            background-clip: border-box;
            background-color: rgb(255, 255, 255);
    }
    .panel-width
    {
            width: 29.32em;
    }
    body
    {
            margin-top: 0px;
            margin-right: 0px;
            margin-bottom: 0px;
            margin-left: 0px;
    }
    #spsizer
    {
            clear: both;
    }
    .subpanel
    {
            margin-left: 10px;
    }
    #spsizer
    {
            overflow: auto;
            position: relative;
    }
    body
    {
            color: #000;
            font-family: arial,sans-serif;
            font-size: 13px;
    }
    input
    {
            color: #000;
            font-family: arial,sans-serif;
            font-size: 13px;
    }
    .subpanel
    {
            padding-top: 18px;
    }
    .no-maps-mini
    {
            overflow: hidden;
    }
    .no-maps-mini body
    {
            overflow: hidden;
    }
    #page
    {
            width: 100%;
            position: relative;
    }
    #panel
    {
            left: 0px;
            top: 58px;
            position: absolute;
            z-index: 3;
            background-color: rgb(255, 255, 255);
    }
    .small #panel
    {
            top: 44px;
    }
    div
    {
            padding-top: 0px;
            padding-right: 0px;
            padding-bottom: 0px;
            padding-left: 0px;
            margin-top: 0px;
            margin-right: 0px;
            margin-bottom: 0px;
            margin-left: 0px;
    }
    .ms
    {
            margin-bottom: 10px;
    }
    .ms .inputField
    {
            width: 100%;
    }
    .msMapTitle
    {
            width: 92%;
    }
    .msMapTitle .title
    {
            font-size: 123%;
            font-weight: bold;
    }
    .msMapTitle .title, .msMapTitle .description
    {
            margin-right: 6px;
            margin-bottom: 0.2em;
    }
    .msMapTitle .title div, .msMapTitle .description div, .msMapTitle .title input
    {
            width: 100%;
    }
    .msMapTitle .title .inputField
    {
            font-size: 100%;
    }
     
    </style></head>
    <body class="msie msie-after-6 kui small" dir="ltr"><div id="page"><div><div class="panel-width" id="panel" style="height: 392px;" oi="maps"><div class="cs" id="spsizer" style="height: 388px;"><div class="opanel css-3d-bug-fix-hack" id="opanel1000"><div class="subpanel ms" id="panel1000"><div><div><div class="msMapTitle"><div align="left" class="title" dir="ltr"><div>
     
    <input tabIndex="100" class="inputField noprint" dir="ltr" type="text" maxLength="250" />
     
    </div></div></div></div></div></div></div></div></div></div></div></body></html>

    Merci à toi.

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 122
    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 122
    Par défaut
    Salut

    Ta page ne contient qu'un seul Input, tu peux donc rechercher ton élément via son tag (Input) en faisant comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim AllElem As IHTMLElementCollection  
    Set AllElem = IEDoc.getElementsByTagName("Input")
    AllElem va contenir tous les éléments dont la balise est Input, un seul élément dans le cas de ta page.

    Tu peux donc l'utiliser comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AllElem(0).Value = "......"

    ++
    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

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2011
    Messages : 32
    Par défaut c'est génial!!!
    Bonjour Qwazerty,

    Le code source HTML que j'ai posté hier n'est pas l'intégralité de la page mais seulement l'élément que je voulais cibler.

    Après avoir suivi ton instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set AllElem = IEDoc.getElementsByTagName("Input")
    J'ai obtenu 35 item!

    Mais grâce a toi j'ai compris comment l'on fait pour sélectionner n'importe quel élément d'un code source HTML.

    Je viens de finir de pointer tous les éléments qui m'intéresse (INPUT, TEXTAREA, bouton radio etc...) et d'éditer chacune de leur valeur.

    Et tout fonctionne pour le mieux, j'espère pouvoir rendre la pareil un jour!
    Encore MERCI!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Balise a et hashtag #, javascript:void ou autre
    Par Gandalf81 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 31/05/2012, 18h51
  2. <a href="javascript:void(0);" ne marche pas
    Par sajodia dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 16/01/2011, 23h05
  3. message javascript:void(0) - viadeo
    Par Alex-30 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/07/2010, 11h30
  4. Javascript-html: ne pas afficher le javascript:void(0)
    Par Anarianthe dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/02/2006, 23h32
  5. Réponses: 3
    Dernier message: 24/10/2005, 15h08

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