XL 2010 Récupération planning d'un site Web via VBA

D.D.

XLDnaute Impliqué
Bonjour à tous.

Je bute sur la récupération d'un planning de présence web via vba.
Je m'explique: Je souhaite récupérer quotidiennement la présence des personnes sur le site des RH de ma société et le transférer sous forme Excel.
J'ai commencé à écrire une vba qui me permet de me loguer sur le site en question
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = 1
ie.Navigate Lien

etc...
mais je n'arrive pas ensuite à accéder aux données du planning (voir sur le zip).
le ie.Document.getElementById.innerHTML ne contient pas les éléments souhaités.

le site fourni la possibilité d'exporter le planning, ce qui serait une solution possible (lien"Export tableur du planning") mais je n'arrive pas non plus à piloter ce lien (dont la référence uuid change à chaque fois).

Est ce que quelqu'un pourrait m'aider ou me donner une piste ?
Merci.

DD
 

Pièces jointes

  • Planning.zip
    57.8 KB · Affichages: 33

D.D.

XLDnaute Impliqué
Hello.

Merci pour la réponse.
Cela fonctionne correctement avec le fichier fourni. C'est Top
Malheureusement je viens de voir que le site web n'a pas la même réponse.
La requête est basée sur le
.Open "GET", URL, False
.send
HTML = .responseText​
et dans le cas du fichier, c'est ok.
Hélas le debug.print HTML du site web ne me donne pas un contenu similaire.

Dans le fichier, si je fais "afficher la source" je "vois" le planning.
Pas contre, si je fais le même chose à partir du site web, je ne "vois" pas le planning quand je fais "afficher la source".
Et en fait mon problème est la: Je n'arrive pas à "voir" dans la requête vba ce que je vois sur mon écran.
Et finalement, je ne sais pas comment transmettre quelque chose ici puisque la sauvegarde de la page web n'est pas conforme à son originale....
 

D.D.

XLDnaute Impliqué
Voici donc le fichier du debug.print obtenu via la requete Get (DebugPrint_testDD.txt)
et le fichier du debug.print obtenu via Debug.Print ie.Document.DocumentElement.outerHTML (DebugPrint_iedocument.txt)

Pour avoir un peu fouiné dans les fichiers temporaires que crée IE quand il navigue, j'ai vu que le planning était stocké dans un fichier pluginHTML.planner.view[1].xml
 

D.D.

XLDnaute Impliqué
Apparemment ni l'un ni l'autre ne contiennent d'information exploitable
Ben oui, le planning en lui même doivent se cacher dans un iframe ou un truc comme ca et je n'arrive pas à trouver dans le code source là ou il est (ou alors en passant via l'outil de développement, mais la c'est trop compliqué pour moi).
Faire un export serait bien, mais je n'arrive pas à accéder au lien me permettant d'exporter ce fichu planning.
A moins que je n'arrive à automatiser la sauvegarde complète de la page et grappiller ensuite ce que je cherche, mais je ne connais pas la commande le permettant.
 

D.D.

XLDnaute Impliqué
Bonjour,

le .SetCredentials "login", "motdepasse", 1 va certainement me servir. Merci.

Je viens de sortir le TXT de la source du clic droit sur le planning, mais en le regardant il ne contient pas les données du planning. Je le place quand même.

J'ai aussi récupérer les fichiers du répertoire de cache de l'internet explorer, après l'avoir bien purgé de tout son historique.
Je pense que tout est la dedans, mais son exploitation est malheureusement au dessus de mes compétences.

Merci en tout cas pour tes réponses.
 

D.D.

XLDnaute Impliqué
Hello,

Merci pour tes recherches.
Je vais essayer de me tourner vers une sauvegarde provisoire pour exploiter les fichiers, comme tu me le proposais hier.
Je n'ai pas encore essayé le SetCredential car pour l'instant le problème n'est pas tellement l'accès au site mais plus son contenu.
Cependant, je pense que dans d'autres cas le SetCredential me sera utile.

Bref, il ne me reste plus qu'à trouver le moyen de faire la sauvegarde du site Web.

Merci en tous cas.
 

D.D.

XLDnaute Impliqué
Hello.
Bon, après pas mal de recherche, rien n'est trop évident pour récuperer ce fichu planning.
La solution, sale, très sale même que j'ai trouvé est de lancer l'internet explorer via
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = 1
ie.Navigate Lien

etc...
puis de faire un dir sur le dossier
%userprofile%\AppData\Local\Microsoft\Windows\Temporary Internet Files\
de récuperer le chemin du fichier
pluginHTML.planner.view*.xml pour aller le copier ailleurs (en vérifiant quand même que sa date/heure de création est bien actuelle), de le décortiquer ensuite pour récupérer les infos souhaitées (merci au fichier test_DD.xlsm), fermer l'IE et effacer le fichier copié.
Je sais, c'est pas propre du tout mais ca marche.

Pour info, le .SetCrédential ne fonctionne pas chez moi.
Bref, pas simple quand même.

Merci à toi en tout cas, tatiak, pour ton aide généreuse.
 

Discussions similaires

Réponses
5
Affichages
354
Réponses
1
Affichages
113

Membres actuellement en ligne

Statistiques des forums

Discussions
312 086
Messages
2 085 197
Membres
102 814
dernier inscrit
JLGalley