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-Internet Atteindre la deuxième balise HTML [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chef de Produit
    Inscrit en
    Juillet 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Chef de Produit
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2016
    Messages : 5
    Par défaut VBA-Internet Atteindre la deuxième balise HTML
    Bonjour,

    J'aimerais prendre des numéros de produits que j'ai dans mon fichier Excel et les mettre dans un tableau adapté d'une page Web. Le but étant de faire des commandes via une macro. Je ne peux pas par contre vous montrer la page car elle est protégée via un mot de passe personnel. Mon problème est que je suis incapable d'atteindre mon tableau via un paquet de méthodes que j'ai essayé: getElementsbyTagName, getElementbyId, getElementsbyClassName...... Je pourrais pourtant atteindre les enfants (children) via des Id ou TagName mais je suis incapable d'atteindre les cases de mes numéros de produits car je ne les vois pas.

    Après des heures d'essaies sans résultat j'ai remarqué qu'il y avait une deuxième balise <HTML> sur la même page web et que c'est à partir de là que je ne vois plus rien dans mes fenêtres de variables locales ou fenêtre espion. Y-a-t-il un moyen d'atteindre le contenu sur cette deuxième balise HTML. Faut-il faire quelque chose en particulier? Je vous met ma première partie du code cependant vous comprendrez que je ne peux divulguer les login et mot de passe.

    Merci


    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
    Option Explicit
    Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
     
     
    Sub Commande()
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim Username As HTMLInputElement
    Dim Password As HTMLInputElement
    Dim Button1 As HTMLButtonElement
    Dim Button2 As HTMLButtonElement
    Dim Coll As IHTMLElementCollection
    Dim j As Long
     
     
    IE.navigate "monsiteinternet"
    IE.Visible = True
    Wait IE
    Sleep 2000
     
    Set IEDoc = IE.document
    Set Username = IEDoc.all("UserName")
    Username.Value = "username"
     
    Set Password = IEDoc.all("Password")
    Password.Value = "password"
     
    Set Button1 = IEDoc.all("cmdSignIn")
    Button.Click
    Wait IE
    Sleep 2000
     
    Set Button2 = IEDoc.all("cmdOk")
    Button2.Click
    Wait IE
    Sleep 2000
     
    j = Feuil13.Cells(Range("A:A").Cells.Count, 1).End(xlUp).Row
     
    'C'est ici que j'ai fait une multitudes de tests mais sans résultat
    'Erreur sur la prochaine ligne car l'id n'est pas reconnu (variable objet non défini)
    IEDoc.all("id_de_mon_premier_numero_a _commander").Value = "monnumérodeproduit"
     
    .....
     
    End Sub

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    si tu a une 2 eme balise HTML c'est sans doute que le document sur le quel tu dois travailler est dans une frame

    il te faut donc recupérer cette frame

    et ensuite travailler avec le document de la frame


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    set maFrame=Ie.document.getElementsBytagname("frame")(f)  'f étant l'index de la frame il peut y en avoir plusieurs 
    with maframe.document
    set mabalisequejerecherche=.Getelementbyid("xxxxx")
    'ou par une classe
    'set mabalisequejerecherche=.GetelementsbyClassname("yyyy")(x)'x  etant l'index de l'elementdans la collection si il y en a plusieurs (0 si il y en a qu'une )
     
    'reste du code ......
     
    end with
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chef de Produit
    Inscrit en
    Juillet 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Chef de Produit
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2016
    Messages : 5
    Par défaut
    Effectivement le document a plusieurs Frame. J'ai essayé avec le code comme indiqué cependant c'est toujours négatif. J'ai essayé de prendre tous les éléments Frame dans une collection également mais rien ne sort???
    D'autres solution?

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Chef de Produit
    Inscrit en
    Juillet 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Chef de Produit
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2016
    Messages : 5
    Par défaut
    Merci Patrick de ton aide. La réponse à mon problème a été d'utiliser l'API keybd_event car il était pratiquement impossible d'atteindre le code source HTML de ma page par VBA.

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    je pense au contraire que c'est réalisable via IE mais ne pouvant me connecter à la page web …

    ___________________________________________________________________________________________________________
    Je suis Paris, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Chef de Produit
    Inscrit en
    Juillet 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Chef de Produit
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2016
    Messages : 5
    Par défaut
    Salut Marc-L,

    Merci quand même de ton aide, mais j'ai dû régler ma situation autrement. Je sais qu'il n'est pas évident de régler une situation lorsqu'on a pas les éléments devant nous. Je ne doute pas de ton expérience et je te remercie.

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par Bendan Voir le message
    Merci Patrick de ton aide. La réponse à mon problème a été d'utiliser l'API keybd_event car il était pratiquement impossible d'atteindre le code source HTML de ma page par VBA.
    Ben oui je sais c est moi qui te l ai envoye par mp
    @marc son site est vraiment difficile il est doté du part on windows hide qui est le nouveau system anti robot c est pour cela que je lui est proposé l api de simulation de touche
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    Patrick, tout ce qui est chargé dans la page est donc consultable dans le DOM (modèle objet du document) …

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

Discussions similaires

  1. [XL-2010] Récupérer le descriptif d'une balise HTML en VBA
    Par SkyCorp dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/09/2015, 16h29
  2. Réponses: 12
    Dernier message: 02/12/2005, 23h07
  3. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24
  4. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29
  5. [XSLT] inclure du XSL dans une balise html
    Par iaa dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/08/2002, 15h57

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