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 :

S.O.S : VBA & HTML - IE8 Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre expérimenté Avatar de L'Albatros
    Homme Profil pro
    Chercheur en économie - statistique
    Inscrit en
    Avril 2012
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en économie - statistique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 150
    Par défaut S.O.S : VBA & HTML - IE8 Excel
    Bonjour,

    Je souhaiterais savoir comment arriver à simuler un clic sur une des zones (par exemple: "Séjour 2011") dont la syntaxe HTML est la suivante:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <P>
     
    	<LABEL for=participant_sejour_sejour_id>Séjour choisi</LABEL>
     		<SELECT id=participant_sejour_sejour_id name=participant_sejour_sejour_id> 
    			<OPTION value=53 selected>Séjour 2011(30/11/1999 /30/11/1999)</OPTION>
    			<OPTION value=61>Appronfondissement (30/11/1999 / 30/11/1999)</OPTION>
    			<OPTION value=20>Séjour 2000(12/02/2000 / 19/02/2000)</OPTION>
    		</SELECT> 
     
    <SPAN>&nbsp;</SPAN>
     
    </P>

    Un grand merci d'avance

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

    Je pense que la solution se trouve ici, il n'y a semble-t-il aucune difficulté particulière, la liste à un Id, il suffit d'utiliser la bonne valeur, 53 dans le cas de séjour 2011.

    Bonne soirée
    ++
    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 expérimenté Avatar de L'Albatros
    Homme Profil pro
    Chercheur en économie - statistique
    Inscrit en
    Avril 2012
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en économie - statistique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 150
    Par défaut
    J'avais bien lu le tuto, mais le code proposé ne fonctionne pas chez moi

    Voici mon code VBA (très largement inspiré de ton tuto):

    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
    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
    Sub RechercheVBAExcel()
    'Déclaration des variables
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim InputGoogleZoneTexte As HTMLInputElement
    Dim InputGoogleBouton As HTMLInputElement
     
    Dim htmlTagCol As IHTMLElementCollection
    Dim htmlSelectElem As HTMLSelectElement
     
    'Dim Generic As HTMLGenericElement
    'Dim iCollection As IHTMLElementCollection
     
     
       'Chargement d'une page Web Google
       IE.Navigate "http://www.eauvive.info/admin"
     
       'Affichage de la fenêtre IE
       IE.Visible = True
     
       'On attend le chargement complet de la page
       WaitIE IE
     
       'On pointe le membre Document
       Set IEDoc = IE.document
     
       'On pointe notre Zone de texte
       Set InputGoogleZoneTexte = IEDoc.all("ident")
        On Error Resume Next
       'On définit le texte que l'on souhaite placer à l'intérieur
       InputGoogleZoneTexte.Value = "*****"
     
       On Error Resume Next
     
       Set InputGoogleZoneTexte = IEDoc.all("mdp")
     
       'On définit le texte que l'on souhaite placer à l'intérieur
       InputGoogleZoneTexte.Value = "*****"
     
       Set InputGoogleBouton = IEDoc.all("sub")
     
        'On simule un clic
        InputGoogleBouton.Click
     
     
     
       'On attend la fin de la recherche
       WaitIE IE
     
     
        IE.Navigate "http://www.eauvive.info/admin.php?gestionsejour"
     
        WaitIE IE
     
     
        Set InputGoogleBouton = IEDoc.all("formGestionSejour")
     
        'On simule un clic
        InputGoogleBouton.Click
     
        WaitIE IE
      '-----------------------------------------------------------------------------
     
        'Set IEDoc = IE.document
     
        Set htmlSelectElem = IEDoc.all("participant_sejour_sejour_id")(1)
     
       'On sélectionne l'indice "56" via sa valeur unique
        htmlSelectElem.Value = "56"
        htmlSelectElem.Click
     
    '## Autre solution ##
       'On sélectionne l'indice "ter" via l'index
       'htmlSelectElem.selectedIndex = 2
       ' htmlSelectElem.Click
     
        WaitIE IE
     
     
       Set IE = Nothing
       Set IEDoc = Nothing
     
     
    End Sub
    Tout fonctionne bien jusqu'à cette "simulation de clic sur zone"... et après, plus rien, la fenetre reste inerte

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

    Les tutoriels sont fait pour use et abuse en.

    Je déroule le code jusqu'au click du 1er bouton et tout ce passe bien pour la suite...

    Que représente formGestionSejour.

    Essai de mettre ici le code source de la page ou au moins la partie qui nous intéresse, pour que je puisse voir sur quoi tu travailles. Tu peux en plus mettre également un screenshot de la page, ça permet de comprendre comment est organisé le bouzin .

    ++
    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 expérimenté Avatar de L'Albatros
    Homme Profil pro
    Chercheur en économie - statistique
    Inscrit en
    Avril 2012
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en économie - statistique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 150
    Par défaut
    Bonjour,

    Désolé du temps de réponse, je me suis penché sur une autre problématique pour faire une "pause".

    J'ai bien fait, car après re-lecture de tout le code, je me suis rendu compte que plutôt de simuler un clic sur un "bouton", je pouvais atteindre directement l'action attaché à cet évènement (javascript):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IEDoc.parentWindow.execScript "*****(" & numSejour & ");", "javascript"
    WaitIE IE
    Cependant, si j'ai pu contourner le problème de mon côté, je ne veux pas laisser ce post comme ça: j'en ai vu beaucoup avec le même problème sur d'autres forum d'entraide, et je n'ai jamais trouvé de réponse claire sur ce thème (à part du bricolage).

    Comme la sécurité de l'application en ligne sur laquelle je travaille est médiocre, je ne suis pas sûr de pouvoir poster la source. Je regarde donc d'abord l'ensemble du code avant de revenir vers toi.

    Au pire, accepterais-tu que je te l'envoie par messagerie privée ?

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 926
    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 926
    Par défaut
    Salut
    Oui pas de soucis pour le MP, par contre je ne te promet pas une réponse rapide.

    Cependant, si j'ai pu contourner le problème de mon côté, je ne veux pas laisser ce post comme ça: j'en ai vu beaucoup avec le même problème sur d'autres forum d'entraide, et je n'ai jamais trouvé de réponse claire sur ce thème (à part du bricolage).
    Je ne sais pas de quelle partie de ton code tu parles, mais ne trouves tu pas une solution "propre" à l'aide du tutoriel cité plus en amont dans la discussion?

    ++
    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 expérimenté Avatar de L'Albatros
    Homme Profil pro
    Chercheur en économie - statistique
    Inscrit en
    Avril 2012
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en économie - statistique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 150
    Par défaut
    Je me suis mal exprimé: les sources de tes tutos sont de très bonne qualité et fonctionnent parfaitement avec tes exemples.

    Seulement, dans mon cas, sur ma page internet cible, ces codes ne fonctionnent pas. Et d'autres personnes explicitent le même type de problème sur d'autres forums (de mémoire: VBfrance, ExcelDownloads)

    Alors moi de mon côté, pour mon cas perso, je m'en suis sorti en sautant l'étape du "clic sur bouton", en appelant directement la fonction JavaScript qui était rattachée à ce bouton.

    Je ne suis pas un puriste, mais ce petit truc reste du bricolage...

    Et ça m'agace de ne pas arriver à adapter ton code à tout type de page Web

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

    Il n'y a pas forcement UNE bonne solution, du moins mon tutoriel n'a pas cette prétention, j'ai essayé de fournir des outil de travail. Après que le click ne fonctionne pas, mais que l'accès direct via l’exécution d'une fonction Java ne pose pas de problème, je dirais que ça n'est pas grave, du moment que tu trouves l'outil qui te permet de réaliser ce que tu souhaites.

    Imaginons que tu connaisses les paramétré à saisir dans ton appelle de procédure. Quelle serait l’intérêt de saisir 10 infos dans des champs placés sur un formulaire via du code VBa pour finalement faire un click bouton simulé, qui lui même fera appelle à la fonction Java que tu aurais pu appeler dès le départ...

    Maintenant je comprend que tu veilles connaitre le pourquoi ça ne fonctionne pas, et si je peux t'y aider, je le ferais.

    ++
    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. [VBA] supprimer un Classeur Excel
    Par beurnoir dans le forum Access
    Réponses: 26
    Dernier message: 14/11/2005, 15h05
  2. [Vba] Lire BDD avec Excel
    Par Emcy dans le forum Access
    Réponses: 12
    Dernier message: 09/11/2005, 12h09
  3. [HTMLEditorKit] afficher texte html dans excel
    Par Invité dans le forum Composants
    Réponses: 1
    Dernier message: 23/08/2005, 11h43
  4. [excel vba]case à cocher dans excel pour plusieurs lignes
    Par fcoisb dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/03/2005, 12h23
  5. [VBA-E] macro conversion excel vers csv
    Par baboune dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/07/2004, 10h23

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