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. #41
    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
    1) Oui j'ai essayé de manipuler les li
    2) Non, l'onglet ouvert reste celui du "trajet" (Pas de changement d'onglet)
    3) Il n'y a qu' Internet Explorer comme navigateur dans l'entreprise, et elle n'apparait nulle part (lors de la manipulation des listes je parle).

    Encore merci pour tous vos efforts , meme si cela ressemble à un problem sans fin
    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

  2. #42
    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
    si l url n'es pas confidentielle peut on l'avoir?

    oui tu a essayer de manipuler les li mais a tu la certitude de bien les avoir ciblé avec un debug.print par exemple sur leur innertext

    car pour moi tout reside la il est quasi impossible de ne pas pouvoir les manipuler donc pour moi c'est toi qui fait une erreur quelque part

    il faut arreter de partir tout asimut avec api ou executer les scripts directement ca te fait partir dans des rocambolesques aventures sans fin et pour rien visiblement surtout pour un si simple besoins

    alors fait moi plaisir teste les li apres on pourra parler du reste
    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. #43
    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
    Bonjour,
    L’URL est "http://psfweb.ugb.renault.fr/PSFV/CONSVEHI/recherche.do?method=rechercher&identifiant.identifiantPji=" & thePJI
    Remplacer thePJI par une valeur, pour l’exemple utiliser 3710612, ce qui donne :
    http://psfweb.ugb.renault.fr/PSFV/CO...antPji=3710612

    Je ne suis pas sûr que vous puissiez y accéder, je crois qu’il s’agit d’une adresse Intranet (ce qui pourrait être l’une des causes du problème)

    Mon application se présente sous la forme :

    Nom : 1.jpg
Affichages : 359
Taille : 22,8 Ko

    Voici le code qui est exécuté lors d’un click sur le bouton OK :
    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
    Sub test(thePJI)
        Dim IE As Object, mestables As Object, monmenu As Object, doc As Object, mesLI As Object
        Dim texte As String, url As String
        Dim e As Long, i As Long
        url = "http://psfweb.ugb.renault.fr/PSFV/CONSVEHI/recherche.do?method=rechercher&identifiant.identifiantPji=" & thePJI
        Set IE = New InternetExplorerMedium
        IE.Visible = True
        IE.navigate url
        'Do: DoEvents: Loop While IE.readyState <> 4
     
        Do Until IE.readyState = READYSTATE_COMPLETE 'Attente du chargement complet de la page web
            DoEvents
        Loop
     
        ' 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 Until IE.readyState = READYSTATE_COMPLETE 'Attente du chargement complet de la page web
                Application.Wait (Now + TimeValue("0:00:2"))
                DoEvents
            Loop
     
            '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 met le contenu de texte dans le clipbord du htmldocument
                Application.ScreenUpdating = False
                With Sheets(7)    ' 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
    L’URL obtenue par l’exécution du code : [URL][/URL]
    La page Internet qui est obtenue par ce code :
    Nom : 2.png.jpg
Affichages : 425
Taille : 108,7 Ko
    Le code que tu m’as proposé retourne l’erreur suivante (mais affiche tout de même dans le débug.Print, voir ci-après)
    Nom : 3.jpg
Affichages : 368
Taille : 90,1 Ko
    L’erreur se trouve ici :
    Nom : 4.jpg
Affichages : 316
Taille : 25,2 Ko

    Voici ce qui est obtenu avec code dans le Debug.Print :

    Critères

    Français Anglais Espagnol Turc Roumain Portuguais Russe DOUEX1

    AccueilAideTableauxVéhiculesLe catalogue documentaireIPPSFSNDIFPEINTURETRACABILITESAOCommunConsultation véhiculesVéhicules dans une zoneVieillissement STERCSignabilité VéhiculesRecherche Multi CritèresAccueil >Consultation véhiculesRecherche de véhicules

    Dept :
    An :
    PJI : 71
    TAPV :
    Num Fab :
    Châssis :
    Ident. secondaire :
    Chaîne :
    Numéro séquence MOFF
    Dernier trajet02/12/2015 06:58:08
    Zone couranteBDM4
    Créé le04/11/2015
    Zone d'entréeCNT1
    Zone de sortieBLAN
    CTM8 - COMFRA


    Nouvelle recherche

    Consultation de la signabilité
    GénéralitésTrajetComposition
    Critères
    ComposantsTraçabilitéPilotageQualité
    Piéces manquantes
    Défauts PSFV
    Saisies GRETSéquence
    Afficher tous les trajets Localisation Parc : Historique Localisation

    Date - HeurePoint de saisieZone avalNuméro d'enchaînementMarche dégradée

    04/11/2015 05:18:37$ENCCNT1N
    09/11/2015 09:01:31LAN1BAVA3523N
    10/11/2015 13:47:42STOBGLVB0000N
    10/11/2015 14:00:46ETTBTTS 0000N
    10/11/2015 16:53:43EPA COLA5032N
    12/11/2015 11:56:52ETRITRIS0000N
    12/11/2015 12:23:15EMOALARA0801N
    12/11/2015 19:35:40TCM1TCM 0000N
    02/12/2015 06:58:08EBM4BDM40000N

    v13.0 © Renault s.a.s - 02/12/2015
    Merci de patienter ...
    Dept :
    An :
    PJI : 71
    TAPV :
    Num Fab :
    Châssis :
    Ident. secondaire :
    Chaîne :
    Numéro séquence MOFF
    Dernier trajet02/12/2015 06:58:08
    Zone couranteBDM4
    Créé le04/11/2015
    Zone d'entréeCNT1
    Zone de sortieBLAN
    CTM8 - COMFRA
    Dept :
    An :
    PJI : 71
    TAPV :
    Num Fab :
    Châssis :
    Ident. secondaire :
    Chaîne :
    Numéro séquence MOFF
    Dernier trajet02/12/2015 06:58:08
    Zone couranteBDM4
    Créé le04/11/2015
    Zone d'entréeCNT1
    Zone de sortieBLAN
    CTM8 - COMFRA
    Date - HeurePoint de saisieZone avalNuméro d'enchaînementMarche dégradée

    04/11/2015 05:18:37$ENCCNT1N
    09/11/2015 09:01:31LAN1BAVA3523N
    10/11/2015 13:47:42STOBGLVB0000N
    10/11/2015 14:00:46ETTBTTS 0000N
    10/11/2015 16:53:43EPA COLA5032N
    12/11/2015 11:56:52ETRITRIS0000N
    12/11/2015 12:23:15EMOALARA0801N
    12/11/2015 19:35:40TCM1TCM 0000N
    02/12/2015 06:58:08EBM4BDM40000N
    Merci de patienter ...
    Composants

    Français Anglais Espagnol Turc Roumain Portuguais Russe DOUEX1

    AccueilAideTableauxVéhiculesLe catalogue documentaireIPPSFSNDIFPEINTURETRACABILITESAOCommunConsultation véhiculesVéhicules dans une zoneVieillissement STERCSignabilité VéhiculesRecherche Multi CritèresAccueil >Consultation véhiculesRecherche de véhicules

    Dept :
    An :
    PJI : 71
    TAPV :
    Num Fab :
    Châssis :
    Ident. secondaire :
    Chaîne :
    Numéro séquence MOFF
    Dernier trajet02/12/2015 06:58:08
    Zone couranteBDM4
    Créé le04/11/2015
    Zone d'entréeCNT1
    Zone de sortieBLAN
    CTM8 - COMFRA


    Nouvelle recherche

    Consultation de la signabilité
    GénéralitésTrajetComposition
    Critères
    ComposantsTraçabilitéPilotageQualité
    Piéces manquantes
    Défauts PSFV
    Saisies GRETSéquence
    Afficher tous les trajets Localisation Parc : Historique Localisation

    Date - HeurePoint de saisieZone avalNuméro d'enchaînementMarche dégradée

    04/11/2015 05:18:37$ENCCNT1N
    09/11/2015 09:01:31LAN1BAVA3523N
    10/11/2015 13:47:42STOBGLVB0000N
    10/11/2015 14:00:46ETTBTTS 0000N
    10/11/2015 16:53:43EPA COLA5032N
    12/11/2015 11:56:52ETRITRIS0000N
    12/11/2015 12:23:15EMOALARA0801N
    12/11/2015 19:35:40TCM1TCM 0000N
    02/12/2015 06:58:08EBM4BDM40000N

    v13.0 © Renault s.a.s - 02/12/2015
    Merci de patienter ...
    Dept :
    An :
    PJI : 71
    TAPV :
    Num Fab :
    Châssis :
    Ident. secondaire :
    Chaîne :
    Numéro séquence MOFF
    Dernier trajet02/12/2015 06:58:08
    Zone couranteBDM4
    Créé le04/11/2015
    Zone d'entréeCNT1
    Zone de sortieBLAN
    CTM8 - COMFRA
    Dept :
    An :
    PJI : 71
    TAPV :
    Num Fab :
    Châssis :
    Ident. secondaire :
    Chaîne :
    Numéro séquence MOFF
    Dernier trajet02/12/2015 06:58:08
    Zone couranteBDM4
    Créé le04/11/2015
    Zone d'entréeCNT1
    Zone de sortieBLAN
    CTM8 - COMFRA
    Date - HeurePoint de saisieZone avalNuméro d'enchaînementMarche dégradée

    04/11/2015 05:18:37$ENCCNT1N
    09/11/2015 09:01:31LAN1BAVA3523N
    10/11/2015 13:47:42STOBGLVB0000N
    10/11/2015 14:00:46ETTBTTS 0000N
    10/11/2015 16:53:43EPA COLA5032N
    12/11/2015 11:56:52ETRITRIS0000N
    12/11/2015 12:23:15EMOALARA0801N
    12/11/2015 19:35:40TCM1TCM 0000N
    02/12/2015 06:58:08EBM4BDM40000N
    Merci de patienter ...
    J’ai également tenté de modifier le code, en manipulant les listes comme tu me l’avais dit, en remplaçant à l’endroit indiqué dans le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    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
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    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
    Résultat obtenu :
    L’URL obtenue : http://psfweb.ugb.renault.fr/PSFV/CO...=3710612#ong32
    La page Web :
    Nom : 5.jpg
Affichages : 370
Taille : 110,1 Ko

    J’obtiens aussi la même erreur (au même endroit), le même affichage dans Debug.Print

    J’ai ensuite modifié la valeur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mesLI(i).Children(0).Click    ' le href est dans la balise "a" enfant du li
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mesLI(i).Children(1).Click    ' le href est dans la balise "a" enfant du li
    Qui me donne :
    L’URL obtenue : http://psfweb.ugb.renault.fr/PSFV/CO...antPji=3710612
    La même page web est la même que pour les deux précédentes

    L’erreur

    A l’endroit :

    Et l’affichage du Debug.Print :
    Critères
    Puis par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mesLI(i).Children(2).Click    ' le href est dans la balise "a" enfant du li
    Qui me retourne tout exactement à l’identique que le précédent.

    Voilà, je crois que je t’ai tout indiqué concernant le code que tu m’avais fourni. Si tu veux les autre codes que j’ai utilisé, c’est possible aussi.

    Ah et comme tu peux le constater, j’ai corrigé les petites erreurs que j’avais identifiées (sauf celles présentes dans mon exemple cela va de soi), et j’ai ajouté une temporisation pour être sûr que le chargement de la page web se fasse complètement (ce qui est fait)
    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

  4. #44
    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 Fin du problème :
    Ne cherchez plus, ne vous cassez plus la tête sur le sujet, le problem vient bel et bien d'une autorisation particulière en Intranet.

    Désolé de vous avoir pris votre temps sur un sujet sans solution possible, et surtout MERCI
    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. #45
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    vue que tu travail en intranet, tu devrais te rapprocher du service qui héberge le site pour voir si il n'y a pas une solution du coté web service!

  6. #46
    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
    C'est en cours, il ne s'agit pas d'un problème mais d'une sécurité volontaire. J'ai demandé à obtenir les accès, j'attends maintenant la réponse.
    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. #47
    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

    puré je dois pas parler francais

    puisque dans le debug.print ta table est affichée alors j'ai raison c'est simplement une gestion d'attente point final ca n'a rien a voir avec ton intranet

    tu a l'api sleep
    ou fonction wait excel

    ou do loop sur le location url car il y a des chances pour que le locationurl change en changeant d'onglet

    c'est pas compliqué

    d'apres la ligne jaune en erreur sur ta capture il semblerait que ce soit l'object htmlfile tout du moins l'acces a son clipboard la mon vieux c'est balou ca m'es arrivé et j'ai été oblligé de formater pour réavoir mes librairies conforme pas d'autre solution
    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. #48
    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é de te décevoir, mais la table obtenue est celle de la première page, récupérée directement dans le code source initial. Et après contact avec le service informatique de l'entreprise, ceux-ci (notamment la personne ayant créé l'application intranet) m'ont explicitement dit que tout code exécuté pour atteindre une page appelée depuis une autre était proscrit. Et peut importe que je mette un wait ou une boucle d'attente (d'ailleurs si tu avais observé mon code tu aurais remarqué qu'il y en a...), j'avais testé avec une attente de 1min30 car c'est le temps que met la page à s'afficher lorsque le réseau est surchargé (ce qui arrive très rarement) et ça ne changeait rien.

    Donc, bien cordialement, je suis désolé de te dire que ta réponse n'est ici pas la solution.
    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

  9. #49
    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

    oulah!!

    donc si je te comprends bien tu a une page avec des menus "li" qui sont sensés te modifier la page mais que tu ne peut pas utiliser dans ton intranet

    je me demande si je dois rire maintenant ou tout de suite

    tu n'a pas compris du tout ma demarche

    en manipulant les elements par VBA tu ne modifie en rien les protocoles VBA devient simplement une extention de tes doigs qui sont sencés cliquer sur la souris ou taper sur ton clavier

    a mon avis ton responsable informatique n'avais pas envie de se casser la tete a t'expliquer il en a certainement bien plus important a faire

    enfin comme tu veux

    juste une question cette page source a t elle eté developpée par ton service informatique????

    une autre simple question
    quand tu le fait manuellement est ce que c'est la bonne page avec ta table qui s'affiche ?

    si c'est le cas ca devrait repondre a ta question
    dans le cas contraire c'est ce que j'ai dis plus haut dans la discution la page est protégée par le script onwindow
    au quel cas il est facile de le contourner en supprimant le script de code html et en exploitant le reste dans un document html recréé j'en ai fait la demo dans la discution de sebphyto


    a mon avis tu a mal compris le principe et ce n'etait pas la bonne question a poser au reponsable informatique

    c'est dommage que l'on puisse pas acceder a ta page je te ferait un exemple en 30 secondes
    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

  10. #50
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Indépendamment du fait que je pense que Patrick a raison, le javascript oeuvre que côté client, ton service informatique doit pouvoir te donner la doc te permettant d'accéder à tes données par le web services qui d'un point de vu professionnel est plus propre!

    Je rappel que le web services permet l'envoi de requête vers le serveur Web sur des fonctions qui retourne un xml que le client peut parse! Il n'est même pas besoin de passer par Ie directement par Vba!
    Dernière modification par Invité ; 03/12/2015 à 11h14.

  11. #51
    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
    re

    oulah!!

    donc si je te comprends bien tu a une page avec des menus "li" qui sont sensés te modifier la page mais que tu ne peut pas utiliser dans ton intranet

    je me demande si je dois rire maintenant ou tout de suite

    tu n'a pas compris du tout ma demarche

    en manipulant les elements par VBA tu ne modifie en rien les protocoles VBA devient simplement une extention de tes doigs qui sont sencés cliquer sur la souris ou taper sur ton clavier

    a mon avis ton responsable informatique n'avais pas envie de se casser la tete a t'expliquer il en a certainement bien plus important a faire

    enfin comme tu veux

    juste une question cette page source a t elle eté developpée par ton service informatique????

    une autre simple question
    quand tu le fait manuellement est ce que c'est la bonne page avec ta table qui s'affiche ?

    si c'est le cas ca devrait repondre a ta question
    dans le cas contraire c'est ce que j'ai dis plus haut dans la discution la page est protégée par le script onwindow
    au quel cas il est facile de le contourner en supprimant le script de code html et en exploitant le reste dans un document html recréé j'en ai fait la demo dans la discution de sebphyto


    a mon avis tu a mal compris le principe et ce n'etait pas la bonne question a poser au reponsable informatique

    c'est dommage que l'on puisse pas acceder a ta page je te ferait un exemple en 30 secondes
    La personne qui m'a expliqué comment cela fonctionne est la personne ayant créé le réseau intranet et l'application à laquelle je souhaite accéder.
    Il était en congés jusqu'il y a peu mais je suis désormais en contact constant avec lui, et je peux te dire qu'il a LARGEMENT LE TEMPS de tout m'expliquer.
    Il s'agit bel et bien de protocoles de sécurités, puisque je les ai vus de mes yeux. Et ton code ne fonctionne pas car en effet simuler un clic sur les listes n'est pas suffisant, il faut également simuler la réception du clic sur les listes par le code java qui va ensuite l'interpréter, il s'agit donc bien comme je l'avais annoncé au départ (bien que j'en ai douté par la suite avec tes explications, car elles semblaient correspondre), d'un problème d'exécution de script java en intranet.

    Si tu ne comprends pas :
    Lorsque c'est fait manuellement, tu cliques sur la liste ET EN MEME TEMPS sur le bouton javascript, et c'est le code javascript qui affiche la nouvelle page
    Alors qu'avec ton code, seul le clic sur la liste est simulé, le code java n'est donc pas exécuté, donc la page n'est pas modifiée (bien que l'URL ait changé)
    (Et la solution que j'avais, c'est-à-dire d'exécuter directement le code javascript ne peut pas fonctionner à cause des protocoles de sécurité empêchant l'exécution de scripts directs en intranet).
    Conclusion : le code HTML (donc les li) sert à obtenir la nouvelle URL, tandis que dans le même temps, le code Javascript permet d'afficher la nouvelle table.
    (Ce qui a permis à la personne ayant créé l'application de constater une erreur de sécurité, puisque normalement, rien de devrait être affiché dans la table, pas même celle de la première page)

    Citation Envoyé par rdurupt Voir le message
    Bonjour,
    Indépendamment du fait que je pense que Patrick a raison, le javascript oeuvre que côté client, ton service informatique doit pouvoir te donner la doc te permettant d'accéder à tes données par le web services qui d'un point de vu professionnel est plus propre!

    Je rappel que le web services permet l'envoi de requête vers le serveur Web sur des fonctions qui retourne un xml que le client peut parse! Il n'est même pas besoin de passer par Ie directement par Vba!
    C'est vrai, sauf que pour des raisons de sécurité (je tente d'accéder à des pages peu importantes, mais il y a dans d'autres des informations confidentielles), le service informatique refuse intégralement toute demande d'accès, seuls eux sont habilités.
    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

  12. #52
    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

    oulah !!! la on s'enfonce
    La personne qui m'a expliqué comment cela fonctionne est la personne ayant créé le réseau intranet et l'application à laquelle je souhaite accéder.
    Il était en congés jusqu'il y a peu mais je suis désormais en contact constant avec lui, et je peux te dire qu'il a LARGEMENT LE TEMPS de tout m'expliquer.
    Il s'agit bel et bien de protocoles de sécurités, puisque je les ai vus de mes yeux. Et ton code ne fonctionne pas car en effet simuler un clic sur les listes n'est pas suffisant, il faut également simuler la réception du clic sur les listes par le code java qui va ensuite l'interpréter
    c'est du n'importe quoi

    et entre parenthezes je ne simule pas le click je le fait

    si j'avais voulu te dire simuler je t'aurais dis un peu comme Rdurupt te la proposé (d'excecuter les script)

    ca n'est pas le cas moi j'execute bien le clic


    peut etre encore une fois (pour la derniere) il y a bien un protocole de securité utiliser tres courament depuis quelques mois maintenant qui ne permet pas de manipuler la page tant que la souris (curseur n'est pas dans la fenetre ) c'est google qui avait mis ca au point ya pas mal de temps maintenant pour justement ne pas pouvoiir manipuler la page par vba ou autre robots

    cela dit j'ai suivi au fur et a mesure la discution et j'ai cru comprendre que cela n'etait pas le cas

    alors amon avis la reponse que tu a eu ne correspond pas a la question que tu etait sensé poser a ton responsable informatique

    pour faire court

    si il y avait eu un protocole de ce genre meme dans le debug.print tu n'aurais jamais pu avoir 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

  13. #53
    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
    Depuis que j'ai posé le problème j'ai constaté une chose:
    Tu ne lis jamais les messages en entier.
    Il y a bien un protocole de sécurité, et le fait que j'ai pû récupérer les données de la première était une faille dans le protocole, un oubli d'exception sur la première entrée d'URL qui exécutait tout de même le code javascript natif, faille qui d'ailleurs a été résolue aujourd'hui. Il n'est désormais même plus possible d'obtenir la table affichée.
    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

  14. #54
    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
    bonsoir
    si je ne lis pas tout c'est parceque des le debut tu es dans l'erreur




    je ne sais pas si tu te rends compte de ce que tu dis mais une page web intranet ou pas sans possibilité d'executer leur script normalement te provoque l'erreur 404

    il est donc impossible qu'il aient pu bolquer tout les script

    c'est comme si je te disais viens on va faire une balade j'ai acheté une voiture toute neuve mais ne t inquiete pas ya pas de moteur

    c'est exactement ce dont ton responsable informatique te fait croire ca en dis long entre nous

    et puis meme raisonne un peu par toi meme

    dis moi a quoi bon avoir des menu li et autre control ou je ne sais quel interface dans une page web si ils sont bloqués a quoi leur servirait la page


    a faire jolie dis moi


    non je le redis c'est du n'importe quoi

    j'en ai connus des pages web protégées et il y a aucunne protection connu a ce jour qui n'est pas contournable parfois c'est compliqué je te l'accorde

    mais dans ton cas a mon avis c'a n'est meme pas a envisager car c'est une simple non comprehention de ton environement
    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

  15. #55
    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
    FAUX, ABSOLUMENT FAUX!
    Il y a d'ailleurs un paramètre dans les options Internet UNIQUEMENT POUR BLOQUER LES EXECUTIONS DE SCRIPT DE SITE A SITE, qui ne bloque pas l'HTML mais qui bloque TOUTE EXECUTION JAVASCRIPT OU AJAX (il te suffit d'aller, pour Internet explorer, dans Options->Option Internet->Sécurité->Niveau de sécurité pour cette zone->Personnaliser le niveau->Script->Activer le filtre XSS)
    L'image de la balade en voiture est totalement fausse, ce serait plutôt :
    "Viens on va faire une balade, j'ai une voiture neuve très performante, mais j'ai pris la version sans option", et c'est exactement ça.
    N'importe quelle page web correctement écrite est affichée par un navigateur (même certaines contenant des erreurs), mais ce n'est pas parce que le code HTML est interprété que tout autre langage l'est!
    C'est comme si tu me disais : "Tiens je vais créer un programme en C, je vais mettre un peu de KOBOL dedans qui s'exécutera si on s'est identifié", et que finalement le code en KOBOL est exécuté à chaque fois, que l'on soit ou non connecté.
    Jusqu'à preuve du contraire, lorsque tu vas sur un site web, ou même une application, qui demande que tu sois connecté pour effectuer telle ou telle action, tant que tu n'es pas connecté, tu ne peux pas la faire.
    Quel serait l'intérêt de dire : "Connectez-vous pour accéder à votre compte bancaire" et puis que finalement connecté ou non (équivalent à script exécuté ou non) tu puisses quand même y accéder? Si c'était le cas, tu pourrais accéder à n'importe quelle information n'importe comment, c'est ABSURDE, c'est l'OPPOSE DE LA NOTION DE SECURITE
    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

  16. #56
    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
    et ben dis donc t'a tout compris toi
    FAUX, ABSOLUMENT FAUX!
    Il y a d'ailleurs un paramètre dans les options Internet UNIQUEMENT POUR BLOQUER LES EXECUTIONS DE SCRIPT DE SITE A SITE, qui ne bloque pas l'HTML mais qui bloque TOUTE EXECUTION JAVASCRIPT OU AJAX (il te suffit d'aller, pour Internet explorer, dans Options->Option Internet->Sécurité->Niveau de sécurité pour cette zone->Personnaliser le niveau->Script->Activer le filtre XSS)
    cette personalisation elle ne s'execute que sur le pc dans le quel c'est parametré tu confond coté serveur et pc

    dans ce cas la oui alors c'est a toi de parametrer ton explorer mais je le redis c'a n'a rien a voir avec la page web

    d'ailleur entre nous d'apres toi comment protege t on un page web contre la modification javascript ou ajax jquery et se sont des .......scripts!!!!!ù!ù!!

    donc les scripts ne peuvent pas etre bloqués

    a partir de la je te le redis on peut contourner un script anti copie

    c'est bien domage que je ne puisse pas avoir acces a cette satané page 30 seconde me suffirais pour te le prouver

    surtout que pour ce genre de manip je me suis fait des petits scripts tout fait pres a l'emploi

    enfin c'est comme tu veux ya pas de soucis

    c'est un sujet qui me passionne (VBA/INTERNET) et a ce jour aucunes pages web m'a résisté ,ca peut de temps en temps etre compliqué ca je te l'accorde


    et entre nous l'image elle etait tres bien une voiture peut tres bien rouler sans option

    d'autant plus que plus haut dans le post tu a donné le code des boutons li (javascript.............)donc si ils s'execute pas c'est ton pc qu'il faut parametrer

    et puis puisque le responsable informatique a pris le temps de t'expliquer (heu.. oui on va dire comme ca ) pourquoi ne t'a t il pas donner le moyen de chopper la table par le json

    alors fait moi plaisir
    1 ferme exel

    2 load ta page dans internet explorer

    3 tape f12

    4 clique resaux

    5 clique demarrer la capture

    6 reduit la fentre f12

    7 clique sur ton menu li et choisi ta page

    8 quand ta page est mis a jour reduit IE

    9 agrandi f12

    10 clique vue detaillé

    11 cherche le json de ta table ou la page dans les liste ( tu peut regarder le corps de la reponse pour t'assurer d'etre dans la bonne page )

    12 verifie le locationurl j'ai des doutes la dessus aussi

    a mon avis avec ca tu va trouver tout seul

    j'ai tout dis
    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

  17. #57
    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
    1) Désolé de te décevoir, mais je ne confond pas, c'était à titre d'exemple. Oui l'option se met en place sur le pc, mais ce que tu peux individualiser, tu peux le généraliser, c'est ce qui a été fait ici côté serveur.

    2) Et oui nécessairement la protection web est exécutée par un script, c'est bien pour cela que je parlais avec la notion d'EXCEPTION. Qui plus est la base de la programmation web :
    il y a une DISTINCTION entre CLIENT et SERVEUR, et on peut PARFAITEMENT ETUDIER LA REPONSE DU CLIENT, ce qui permet de n'appliquer des scripts de sécurité que lors d'un contact avec le client et ainsi laisser le serveur libre de toute exécution
    (C'est la base de la base là quand même, c'est la première chose qu'on apprend lorsqu'on fait du serveur/client)

    3) Il n'y a pas de JSON

    4) Tout ce que tu me demandes de faire là je l'ai déjà fait, et je l'avais marqué dans l'un des tout premier message de la conversation. J'avais d'ailleurs précisé que le location URL était de type Hidden, que j'avais contourné ce détail, et que en le contournant, j'avais découvert qu'elle correspondait à ceci :
    http://psfweb.ugb.renault.fr/PSFV/CO...onner.do#ong31

    Tu auras beau être expert, si tu ne lis pas le problème en entier, tu ne pourras pas trouver la réponse. Et je trouve dommage que tu sois aussi borné, car tes codes sont géniaux je dois bien l'avouer, même un réseau Intranet sécurisé n'a pas nécessairement les mêmes règles de sécurité qu'un autre réseau (Intra ou non)

    Et donc pour le coup tu me demandes d'exécuter le premier code que j'avais posté, et qui était jusqu'ici le plus efficace, mais insuffisant. Tu tournes en rond.
    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. #58
    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
    non c'est toi qui tourne en rond car tu a mal métriser au depart et tu es parti dans des solutions rocambolesques

    si tu me dis que :

    quand tu le fait manuellement avec la souris ou les touches clavier sur ta page web ca fonctionne alors par vba ca doit fonctionner point barre

    comme je te l'ai deja dis en manipulant les element par vba (je dis bien les elements) tu ne fait que mettre des faux ongles a tes doigts je ne sais plus comment te le faire comprendre

    moi je ne tourne pas en rond je vais a l'essentiel

    donc pour savoir si tu dois aller plus loin je te l'ai deja dis fait un test sur les li,la locationurl au cas ou cela changerait c'est important pour la variable document

    dis moi ca et apres on verra pas la peine dde tergiverser c'est simple et le test prend 2 minute pour le coder

    locationurl hidden pffffff!!!!!!


    regarde les 2 derniere page de la discution de sebphyto je te montre comment faire sauter cette protection
    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

  19. #59
    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 fait ces tests
    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
    Sub test()
        Rechercher truc    ' remplace truc par ce que vaut pji
    End Sub
     
    Sub Rechercher(PJI)
        Dim IE As Object
        Dim IEDoc As Object
        Dim TableHTML As Object
        Dim mesli As Object
        Dim oldlocation As String
        Set IE = CreateObject("internetexplorer.application")
        IE.navigate "http://monsiteweb/recherche.do?method=rechercher&identifiant.identifiantPji=" & PJI    'Accéder à la page correspondant à la recherche du PJI
        IE.Visible = True    'on le met visible comme ca tu vois toi meme ce qui se passe
        Do While IE.readystate <> 4 Or IE.BUSY: Loop
        oldlocation = IE.locationurl
        Debug.Print IE.locationurl
        Debug.Print "**************************"
     
        Set IEDoc = IE.document
        Set monmenu = IEDoc.getelementbyid("ong3")
        Debug.Print "les items de mon menu" & vbCrLf
        Debug.Print monmenu.innertext    'ici tu a tout les boutons en texte dans le debug
        Set monbouton = monmenu.getelementsbytagname("li")(1)    'pour le 2 eme si je me rappelle bien les index commencant par 0
        Debug.Print "********************************" & vbCrLf
        Debug.Print " le bouton est identifié c'est le :" & monbouton.innertext
        Debug.Print "********************************" & vbCrLf
        monbouton.Click
        Do While IE.readystate <> 4 Or IE.BUSY: Loop
        ' ici selon le temps que met la  pge a ce mettre a jour il te faudra biaiser avec un sleep ou autre pour prolonger l'attente
        MsgBox IE.locationurl    ' comme on a mis ie a visible tu vois ce qui se passe a l'ecran
        ' et donc si le msgbox apparait avant que la page ai changé cela veut dire qu'il te faut ajouter de l'attente
        ' et pourquoi pas tester encore le location
        ' et donc si tu vois que le location change tu pourra faire une simple boucle d'attente sur le location
        ' exemple
        ' do:doevents:loop until ie.locationurl<> oldlocation
        Debug.Print "********************************" & vbCrLf
       Debug.Print "nouvelle location:"
        Debug.Print IE.locationurl
        IE.Quit
    End Sub
    et donne moi le rapport du debug
    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 3 sur 3 PremièrePremière 123

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