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 :

Copier le contenu d'une table HTML dans une feuille Excel [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #21
    Invité
    Invité(e)
    Par défaut
    arrives tu a passer d'onglet en onglet en injectant un script java?

    le contenue de ta page est strictement comme dans tes imprimes écran?

    si oui http://www.developpez.net/forums/d13...a/#post7341139

  2. #22
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Points : 505
    Points
    505
    Par défaut
    Alors oui le contenu de ma page est strictement comme dans les imprimés d'écran.
    Et non, il semblerait que le réseau Intranet de l'entreprise empêche l'éxécution de script java injecté dans le code. J'ai vérifié, toutes mes options Internet autorisent l'exécution de script, mais Internet me répète à chaque fois que "Internet Explorer a modifié cette page pour empêcher le script de site à site".
    Politesse, respect et humilité sont les 3 éléments nécessaires dans une bonne relation d'entraide. Nous faisons cela par plaisir d'aider, ne nous le retirez pas

  3. #23
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    a tu seulement essayé de manipuler le li ?
    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

  4. #24
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Points : 505
    Points
    505
    Par défaut
    Oui j'ai essayé ne t'en fais pas pour ça, de pleins de manières différentes (en l'attribuant à un objet HTMLDocument, un objet, un onbjet HTML Liste, ..., en essayant de récupérer sa valeur pour ensuite effectuer un click et récupérer les informations, ou encore en chargeant le document en entier pour ensuite utiliser la méthode d'accès à la liste spécifique et ainsi sauver le nouveau document et accéder au tableau, et autres...) avec tous les différents codes proposés, les miens (j'en ai 3 similaires qui fonctionnent pour récupérer des tables HTML) et d'autres encore trouvés ici et là...
    Mais si tu avais lu mes précédents messages, j'expliquais que l'accès se faisait bien (je l'observe en utilisant l'espion VBA) cependant le document ne récupère jamais la valeur de la page onglet, mais toujours de la page initiale.
    Je me demande donc si ce n'est pas un problème de sécurité réseau interne de mon entreprise...
    Politesse, respect et humilité sont les 3 éléments nécessaires dans une bonne relation d'entraide. Nous faisons cela par plaisir d'aider, ne nous le retirez pas

  5. #25
    Invité
    Invité(e)
    Par défaut
    Tu as testé ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IE.Document.parentWindow.execScript  "javascript:selectionner(31);"

  6. #26
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Points : 505
    Points
    505
    Par défaut
    Oui et dans le même genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ie.Document.parentWindow.execScript("javascript:selectionner(31)","JavaScript")
    et tout ce qui peut s'y rapprocher de près ou de loin
    (Notamment l'insertion du code java directement dans l'URL)

    Mais le problème reste encore et toujours le même, ça ne me permet pas d'accéder à la page dans le deuxième onglet, je m'explique clairement :
    Le code de redirection fonctionne, je suis redirigé vers la page qui m'intéresse, MAIS, chaque fois que j'enregistre la page (avec IE.Document et tout ce qui va avec, ou encore les méthodes "POST" et "GET" avec ".open" et la suite), c'est la page de l'onglet initial qui est enregistrée. Donc toutes les tables et informations de la première page (trajet) et non pas de la seconde ("critères"). C'est comme si j'étais redirigé automatiquement par le composant avant de pouvoir effectuer toute action dessus.
    Politesse, respect et humilité sont les 3 éléments nécessaires dans une bonne relation d'entraide. Nous faisons cela par plaisir d'aider, ne nous le retirez pas

  7. #27
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    C'est comme si j'étais redirigé automatiquement par le composant avant de pouvoir effectuer toute action dessus
    oui en effet je connais le soucis en fait la page est bien comme je le présentais prtégée par googleappsonwindows

    j'ai palier au meme probleme pour sebphyto tu n'a qu'a regarder dans la discution il y a 26 pages je crois ca te fera de la lecture

    sans cette astuce c'est walouh!!!!!!! et a ma connaissance personne n'a trouvé autre chose

    regarede si dans le code html de la page tu n'aurais pas un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type="text/javascript">
      window.___gcfg = {lang: 'fr'};
      (function() {
        var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
        po.src = 'https://apis.google.com/js/plusone.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
      })();
    </script>
    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    si c'est le cas j'ai raison il va te faloir synder le code et le réinjecter dans un htmldocument pour l'exploiter
    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. #28
    Invité
    Invité(e)
    Par défaut
    Tu as regardé le lien que je t'ai donné plus haut, il fait un select hall de la page et la copie dans le presse papier ensuite tu n'as plus qu'à la collé dns Excel!

  9. #29
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Points : 505
    Points
    505
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    Tu as regardé le lien que je t'ai donné plus haut, il fait un select hall de la page et la copie dans le presse papier ensuite tu n'as plus qu'à la collé dns Excel!
    Oui mais comme je le dis : ça ne récupère que les informations de la première page, et non de la seconde (qui est celle qui m'intéresse)
    Politesse, respect et humilité sont les 3 éléments nécessaires dans une bonne relation d'entraide. Nous faisons cela par plaisir d'aider, ne nous le retirez pas

  10. #30
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    fait moi plaisir ,prend un fichier vierge ,met lui un module standard et colle ce code dans ce module

    adapte l'url et la mise en place des logins et mots de passe eventuellement a l'endroit ou je l'ai indiqué

    voila quoi qu'il se passe tu devrait avoir tes reponses soit sur le sheets soit dans la fentre d'execution ce qui devrait te donner la marche a suivre selon le résultat
    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
    Sub test()
        Dim IE As Object, mestables As Object, monmenu As Object, url As String, mesLI As Object, texte As String, e As Long, i As Long
        url = "http://blablablabla" ' met ton url ici!!!!!!
        Set IE = CreateObject("internetexplorer.application")
        IE.Visible = True
        IE.navigate url
        Do: DoEvents: Loop While IE.readystate <> 4 Or IE.busy
        ' ici adapte tes mot de passe et tout ca ne connaissant pas l'url je ne sais pas donc a toi de voir
        Set doc = IE.document
        Set monmenu = doc.getelementbyid("ong3")    'on cible le menu"ong3"
        Set mesLI = monmenu.getelementsbytagname("li")    'on recupere tout les li dans le menu
        For i = 0 To mesLI.Length -1   'on boucle sur tout les li
            Debug.Print mesLI(i).innertext    ' pour verifier dans la console (fenetre d'execution si ils sont bien identifiés
            mesLI(i).Children(0).Click    ' le href est dans la balise "a" enfant du li
            'si le a n'est pas cliquable essaie
            'mesli(i).click
     
            Do: DoEvents: Loop While IE.readystate <> 4 Or IE.busy
            ' peut etre qu'ici il faudra mettre un sleep la boucle sur le readystate ne suffira pas : avec la fonction WAIT de excel pourquoi pas 2 secondes au max
            Set mestables = doc.getelementsbytagname("table")    'on recupere la collection des tables
            For e = 0 To mestables.Length -1    'on boucle sur toutes les tables
                Debug.Print mestables(e).innertext    ' on peut voir le innertext de la table dans la fentre d'execution
                texte = texte & mestables(e).outerhtml & "<br>"
            Next
        Next
        IE.Quit
        'maintenant que l'on devrait avoir le code html de toutes les table trouvées on le place dans le clipbord d'un documenthtml en memoire (htmldocument)
        'meme pas besoins de mettre le code html dans le document juste son clipboard
        With CreateObject("htmlfile")
            If .parentWindow.clipboardData.setData("Text", texte) Then    ' on mlet le contenu de texte da  ns le clipbord du htmldocument
                Application.ScreenUpdating = False
                With Sheets(1)    ' a adapter a ton cas
                    .Activate
                    .Cells.Clear
                    Cells(1, 1).Select    ' a adapter a ton cas
                    .Paste    ' et enfin on colle le tout dans le sheets
                End With
                .parentWindow.clipboardData.clearData "Text"    'et voila c'est fini on vide le clipboard du document html virtuel
            End If
        End With
    End Sub
    'si le resultat ne correspond pas a tes attentes avant de tirer des conclusions regarde dans la fenetre d'execution!!!!!!

    edit:
    j'ai corrigé les "s" manquand a mestables dans le code
    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

  11. #31
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Moi ce que j'avais compris, c'est que tu pouvais naviguer d'onglets en onglets mais que tu ne pouvais pas faire référence à l'objet document pour récupérer le script HTML.

    Donc si cette fois j'ai bien compris, quand tu est sur le bonne onglet, tu ne peux pas faire ça: Ie.Document.parentWindow.execScript "javascript:Alert('toto');" ?

  12. #32
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Points : 505
    Points
    505
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    Bonjour
    fait moi plaisir ,prend un fichier vierge ,met lui un module standard et colle ce code dans ce module

    adapte l'url et la mise en place des logins et mots de passe eventuellement a l'endroit ou je l'ai indiqué

    voila quoi qu'il se passe tu devrait avoir tes reponses soit sur le sheets soit dans la fentre d'execution ce qui devrait te donner la marche a suivre selon le résultat
    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
    Sub test()
        Dim IE As Object, mestables As Object, monmenu As Object, url As String, mesLI As Object, texte As String, e As Long, i As Long
        url = "http://blablablabla" ' met ton url ici!!!!!!
        Set IE = CreateObject("internetexplorer.application")
        IE.Visible = True
        IE.navigate url
        Do: DoEvents: Loop While IE.readystate <> 4 Or IE.busy
        ' ici adapte tes mot de passe et tout ca ne connaissant pas l'url je ne sais pas donc a toi de voir
        Set doc = IE.document
        Set monmenu = doc.getelementbyid("ong3")    'on cible le menu"ong3"
        Set mesLI = monmenu.getelementsbytagname("li")    'on recupere tout les li dans le menu
        For i = 0 To mesLI.Length -1   'on boucle sur tout les li
            Debug.Print mesLI(i).innertext    ' pour verifier dans la console (fenetre d'execution si ils sont bien identifiés
            mesLI(i).Children(0).Click    ' le href est dans la balise "a" enfant du li
            'si le a n'est pas cliquable essaie
            'mesli(i).click
     
            Do: DoEvents: Loop While IE.readystate <> 4 Or IE.busy
            ' peut etre qu'ici il faudra mettre un sleep la boucle sur le readystate ne suffira pas : avec la fonction WAIT de excel pourquoi pas 2 secondes au max
            Set mestables = doc.getelementsbytagname("table")    'on recupere la collection des tables
            For e = 0 To mestables.Length -1    'on boucle sur toutes les tables
                Debug.Print mestables(e).innertext    ' on peut voir le innertext de la table dans la fentre d'execution
                texte = texte & mestables(e).outerhtml & "<br>"
            Next
        Next
        IE.Quit
        'maintenant que l'on devrait avoir le code html de toutes les table trouvées on le place dans le clipbord d'un documenthtml en memoire (htmldocument)
        'meme pas besoins de mettre le code html dans le document juste son clipboard
        With CreateObject("htmlfile")
            If .parentWindow.clipboardData.setData("Text", texte) Then    ' on mlet le contenu de texte da  ns le clipbord du htmldocument
                Application.ScreenUpdating = False
                With Sheets(1)    ' a adapter a ton cas
                    .Activate
                    .Cells.Clear
                    Cells(1, 1).Select    ' a adapter a ton cas
                    .Paste    ' et enfin on colle le tout dans le sheets
                End With
                .parentWindow.clipboardData.clearData "Text"    'et voila c'est fini on vide le clipboard du document html virtuel
            End If
        End With
    End Sub
    'si le resultat ne correspond pas a tes attentes avant de tirer des conclusions regarde dans la fenetre d'execution!!!!!!

    edit:
    j'ai corrigé les "s" manquand a mestables dans le code
    Merci pour le code, il est très similaire à celui que j'avais utilisé, mais la différence se fera peut-être au niveau du click de la liste, car c'est vrai que je n'avais pas demandé l'attente du chargement complet de la page pour faire la suite.
    Je ne pourrai tester que Lundi, mais je vous donnerai les résultats dès 9H.
    Et encore merci pour tout le temps que vous prenez pour m'aider

    Citation Envoyé par rdurupt Voir le message
    Bonjour,
    Moi ce que j'avais compris, c'est que tu pouvais naviguer d'onglets en onglets mais que tu ne pouvais pas faire référence à l'objet document pour récupérer le script HTML.

    Donc si cette fois j'ai bien compris, quand tu est sur le bonne onglet, tu ne peux pas faire ça: Ie.Document.parentWindow.execScript "javascript:Alert('toto');" ?
    Tout à fait, c'est comme si le contenu de mon second onglet n'était pas mis à jour
    Politesse, respect et humilité sont les 3 éléments nécessaires dans une bonne relation d'entraide. Nous faisons cela par plaisir d'aider, ne nous le retirez pas

  13. #33
    Invité
    Invité(e)
    Par défaut
    En revanche je pense que ça doit marcher si tu encapsule ton lien dans des frams?
    Code document.HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <FRAMESET ROWS="20%,
    80%">
    <FRAME SRC="frame1.htm" NAME="haut">
    <FRAME SRC="frame2.htm" NAME="bas">
    </FRAMESET>
    L'objet documents n'est plus concerné par le restriction javascript et ta navigation ce fait. Sur document.Bas!
    Dernière modification par Invité ; 28/11/2015 à 12h55.

  14. #34
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Points : 505
    Points
    505
    Par défaut
    désolé mais Je ne comprend pas comment je dois l'utiliser
    Politesse, respect et humilité sont les 3 éléments nécessaires dans une bonne relation d'entraide. Nous faisons cela par plaisir d'aider, ne nous le retirez pas

  15. #35
    Invité
    Invité(e)
    Par défaut
    D'abord Pour tester, tu fais un fichier html avec ce code

    about:blank
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <FRAMESET ROWS="1%,
    99%">
    <FRAME SRC="about:blank" NAME="haut">
    <FRAME SRC="tonUrl.htm" NAME="bas">
    </FRAMESET>
    ensuite tu reprends ton code en donnant au navigateur l'url du fichier c:\mysite.html.

    Tu navigue dans ta page avec un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IE.Document.parentWindow.execScript  "javascript:this.document.bas.selectionner(31);"
    Déjà on verra Si on navigue dans les onglets,

    Après tu reprends le lien que je t'ai donné et tu copie colle dans Excel le contenu de la page donc les 2 frames (au niveau de l'objet document)

  16. #36
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Points : 505
    Points
    505
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    Bonjour
    fait moi plaisir ,prend un fichier vierge ,met lui un module standard et colle ce code dans ce module

    adapte l'url et la mise en place des logins et mots de passe eventuellement a l'endroit ou je l'ai indiqué

    voila quoi qu'il se passe tu devrait avoir tes reponses soit sur le sheets soit dans la fentre d'execution ce qui devrait te donner la marche a suivre selon le résultat
    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
    Sub test()
        Dim IE As Object, mestables As Object, monmenu As Object, url As String, mesLI As Object, texte As String, e As Long, i As Long
        url = "http://blablablabla" ' met ton url ici!!!!!!
        Set IE = CreateObject("internetexplorer.application")
        IE.Visible = True
        IE.navigate url
        Do: DoEvents: Loop While IE.readystate <> 4 Or IE.busy
        ' ici adapte tes mot de passe et tout ca ne connaissant pas l'url je ne sais pas donc a toi de voir
        Set doc = IE.document
        Set monmenu = doc.getelementbyid("ong3")    'on cible le menu"ong3"
        Set mesLI = monmenu.getelementsbytagname("li")    'on recupere tout les li dans le menu
        For i = 0 To mesLI.Length -1   'on boucle sur tout les li
            Debug.Print mesLI(i).innertext    ' pour verifier dans la console (fenetre d'execution si ils sont bien identifiés
            mesLI(i).Children(0).Click    ' le href est dans la balise "a" enfant du li
            'si le a n'est pas cliquable essaie
            'mesli(i).click
     
            Do: DoEvents: Loop While IE.readystate <> 4 Or IE.busy
            ' peut etre qu'ici il faudra mettre un sleep la boucle sur le readystate ne suffira pas : avec la fonction WAIT de excel pourquoi pas 2 secondes au max
            Set mestables = doc.getelementsbytagname("table")    'on recupere la collection des tables
            For e = 0 To mestables.Length -1    'on boucle sur toutes les tables
                Debug.Print mestables(e).innertext    ' on peut voir le innertext de la table dans la fentre d'execution
                texte = texte & mestables(e).outerhtml & "<br>"
            Next
        Next
        IE.Quit
        'maintenant que l'on devrait avoir le code html de toutes les table trouvées on le place dans le clipbord d'un documenthtml en memoire (htmldocument)
        'meme pas besoins de mettre le code html dans le document juste son clipboard
        With CreateObject("htmlfile")
            If .parentWindow.clipboardData.setData("Text", texte) Then    ' on mlet le contenu de texte da  ns le clipbord du htmldocument
                Application.ScreenUpdating = False
                With Sheets(1)    ' a adapter a ton cas
                    .Activate
                    .Cells.Clear
                    Cells(1, 1).Select    ' a adapter a ton cas
                    .Paste    ' et enfin on colle le tout dans le sheets
                End With
                .parentWindow.clipboardData.clearData "Text"    'et voila c'est fini on vide le clipboard du document html virtuel
            End If
        End With
    End Sub
    'si le resultat ne correspond pas a tes attentes avant de tirer des conclusions regarde dans la fenetre d'execution!!!!!!

    edit:
    j'ai corrigé les "s" manquand a mestables dans le code
    D'abord bonjour,
    Ensuite, avant de parler des résultats obtenus (ou non obtenus), quelques petites erreurs résolues :
    Il faut changer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set IE = CreateObject("internetexplorer.application")
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set IE = New InternetExplorerMedium
    lorsqu'il s'agit d'un réseau Intranet (je ne m'explique pas pourquoi, mais le premier code ne fonctionne pas alors que le deuxième si)
    Ensuite l'object Doc n'est pas declare, il faut ajouter Ensuite pour les résultats :
    1) la partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mesLI(i).Children(0).Click
    semble être fonctionnelle (ne retourne pas d'erreur et référence la liste souhaitée)
    2) Lors de l'affichage des tables avec le Debug.Print (
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     For e = 0 To mestables.Length - 1   'on boucle sur toutes les tables
                Debug.Print mestables(e).innerText    ' on peut voir le innertext de la table dans la fentre d'execution
                texte = texte & mestables(e).outerHTML & "<br>"
            Next
    , seules les tables du premier onglet (l'onglet de depart et pas critères) sont affichées, comme si le click n'avait pas fonctionné (alors qu'il semble avoir fonctionné)
    3) Erreur non résolue, le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If .parentWindow.clipboardData.setData("Text", texte) Then
    me retourne une erreur du type
    Argument Invalide
    lorsque la boucle semble avoir atteint la fin, comme si elle dépassait la taille maximale
    Politesse, respect et humilité sont les 3 éléments nécessaires dans une bonne relation d'entraide. Nous faisons cela par plaisir d'aider, ne nous le retirez pas

  17. #37
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Points : 505
    Points
    505
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    D'abord Pour tester, tu fais un fichier html avec ce code

    about:blank
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <FRAMESET ROWS="1%,
    99%">
    <FRAME SRC="about:blank" NAME="haut">
    <FRAME SRC="tonUrl.htm" NAME="bas">
    </FRAMESET>
    ensuite tu reprends ton code en donnant au navigateur l'url du fichier c:\mysite.html.

    Tu navigue dans ta page avec un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IE.Document.parentWindow.execScript  "javascript:this.document.bas.selectionner(31);"
    Déjà on verra Si on navigue dans les onglets,

    Après tu reprends le lien que je t'ai donné et tu copie colle dans Excel le contenu de la page donc les 2 frames (au niveau de l'objet document)
    Ca ne peut pas fonctionner, comment puis-je récupérer la création de la table dans un fichier qui est simplement du copier-coller du code HTML? Pour avoir accès aux différents éléments, il faudrait que j'ai accès à la totalité du code de construction des tables, ce que je n'ai pas.

    EDIT : Testé tout de meme, mais comme je le pensais, avoir une page web qui ne créé rien ne sert à rien (la navigation entre les onglets se fait bien mais je me retrouve sans aucune valeur dans les tables et autres champs remplis à l'exécution du code)
    Politesse, respect et humilité sont les 3 éléments nécessaires dans une bonne relation d'entraide. Nous faisons cela par plaisir d'aider, ne nous le retirez pas

  18. #38
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    tu n'as pas besoin d'avoir accès à la table!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Const OLECMDID_SELECTALL = 17
    Const OLECMDEXECOPT_DODEFAULT = 0
    Const OLECMDID_COPY = 12
    iE.Document.parentWindow.execScript("javascript:selectionner(31)","JavaScript")
     
    iE.ExecWB OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT 'Sélectionne tous
    iE.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT 'Copie
    ActiveCell.PasteSpecial xlPasteAll
    End Sub
    tu nous dis ce qui marche pas mais pas ce qui marche , ça n'aide pas!
    Dernière modification par Invité ; 30/11/2015 à 10h32.

  19. #39
    Membre confirmé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Points : 505
    Points
    505
    Par défaut
    La seule chose qui fonctionne dans ce code, c'est l'affichage de la première page HTML. Le reste n'affiche qu'une page blanche
    Et bien sûr que j'ai besoin d'avoir accès à la table, puisque ce qui m'intéresse c'est les données qu'elle contient. Je ne sais pas comment il serait possible de récupérer les données de la table, sans y accéder, cela me parait très étrange.
    Politesse, respect et humilité sont les 3 éléments nécessaires dans une bonne relation d'entraide. Nous faisons cela par plaisir d'aider, ne nous le retirez pas

  20. #40
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour

    on reprends

    question 1 :a tu essayé de manipuler les li?
    question 2 :si oui est ce que ta table apparait dans la page web?
    question 3 : si oui apparait elle dans dans le meme onglet de IE ou autre navigateur ?

    si c'est 3 oui c'est simplement la gestions des attentes a revoir et ca veut dire que tu n'a pas de soucvis avec les autorisation d'executions de script dans ton intranet

    ce qui veut dire que le principe que je t' avais donné doit fonctionner


    navigation ;gestion d'attente;determination du li,click;gestion d'attente(peut etre en dehors des principe readystate )donc fonction wait ou gestion d'attente sur le locationurl;recupération de la table (getelementsbytagnamee("table")(x))

    voila reponds a ces questions car comme on a pas ton url ca risque de durer des plombes
    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

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Supprimer une ligne d'une table html dans une page jsp
    Par dev_newbie dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 30/04/2013, 13h01
  2. [MySQL] Comment afficher le résultat d'une données mysql dans une table html ?
    Par Alexandrebox dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/03/2010, 22h44
  3. [HTML] Intégrer une page html dans une page html
    Par leloup84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 25/03/2008, 12h09
  4. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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