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 EXCEL] Importation données Web


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Points : 1
    Points
    1
    Par défaut [VBA EXCEL] Importation données Web
    Bonsoir,

    Je viens de parcourir de multiples sites/forums concernant VBA 6. afin de trouver la réponse à mes questions :

    Je souhaite automatiser l'importation de données d'un site web sous format .csv mais ce site est protégé par un identifiant et un mot de passe. J'ai les droits d'accès. j'arrive à aller sur le site en question sans problème. Mais comment automatiser la partie identifiant/mot de passe ainsi que le choix de fichiers précis à télécharger une fois qu'on est entré?

    Votre aide est forcément la bienvenue car après plusieurs mois de recherches non productives sur le net ainsi que dans divers bouquins concernant VBA ou Excel, j'avoue être un peu découragé là.
    Si ça se trouve, on ne peut pas le faire ce genre de chose via excel/VBA.

    D'avance merci à vous.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bonjour et bienvenue sur le forum ...

    Cela dépend essentiellement de l'organisation des sites sur lequels tu ve récupérer tes données....tu peu piloter internet explorer un petite recherche sur les forum VB avec les mots clefs IE,Helem devrai t'aider à commencer quelque chose....... par exemple le Script (facilement adaptable en VBA ..) :
    [VBS]Insérer password dans navigateur par VBS





  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse... Ayant déjà du mal en VBA malgré plusieurs tentatives d'auto formation, je me vois mal transcrire du VBS en VBA... Je retourne donc à mes études... peut être qu'un jour une étincelle se fera...

    Si toutefois quelqu'un se sent l'aame d'un bienfaiteur en VBA, qu'il n'hésite pas.

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Un début de "traduction" (non testé):
    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
    Sub OpenIE()
      ' il faut cocher Microsoft HTML Object Library
      ' et Microsoft Internet Controls dans Outils - Références
      Dim IE As InternetExplorer
      Dim Helem As HTMLElementCollection
      Set IE = CreateObject("InternetExplorer.Application")
      IE.Visible = 1
      IE.navigate "http://www.developpez.net/forums/login.php"
      Do While (IE.Busy)
        DoEvents
      Loop
      Set Helem = IE.document.getElementById("username")
      Helem.Value = "pwrollez"
      Set Helem = IE.document.getElementById("password")
      Helem.Value = "LE_MOT_DE_PASSE_A_pwrollez"
      Set Helem = IE.document.getElementById("login")
      Helem.Click
    End Sub
    A toi de chercher un peu, maintenant.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Merci pour l'info ci-dessus... je cherche, je cherche... mais le miracle ne se produit pas... J'ai acheté un autre bouquin sur VBA... on verra bien si ça devient clair... Autrement, pas le choix que de trouver un prof pour une démo...

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bon, je progresse tant bien que mal et cela donne cela :

    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
    Sub piloterPageHTML()
    'nécessite d'activer les références
    'Microsoft HTML Objects Library et Microsoft Internet Controls
    Dim IE As internetExplorer
    Dim maPageHtml As HTMLDocument
    Dim Helem As IHTMLElementCollection
    Dim Hx As IHTMLInputElement
    Set IE = CreateObject("internetExplorer.Application")
    IE.Visible = True
    IE.navigate "https://www.developpez.net"
    Do Until IE.readyState = READYSTATE_COMPLETE
    DoEvents
    Loop 'attend la fin du chargement
    Set maPageHtml = IE.document
    Set Helem = maPageHtml.getElementsByTagName("input")
    Set Hx = Helem.Item("UserName") 'Définit le champ Input contenu dans la page
    Hx.Value = "rollez" 'Insere les données
    Set Hx = Helem.Item("password") 'Définit le champ Input contenu dans la page
    Hx.Value = "lemot depasse qui va bien" 'Insere les données
    For i = 0 To Helem.Length - 1
    If Helem(i).getAttribute("name") = "login" Then Helem(i).Click
    Next i
    End Sub
    A partir de là je perd les pédales...

    Disons qu'une fois arrivé là, je dois faire un clic sur un lien interne à cette page... Et je ne trouve pas la soluce à cela... J'ai tenté ça mais sans succès...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Helem(i).getAttribute("name") = "manage_user" Then Helem(i).Click
    Next i
    J'ai aussi tenté ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Helem(i).getAttribute("URl=") = "www.developpez.nt/...manage_user" Then Helem(i).Click
    Next i
    mais sans résultat...

    Quelquun de compétent serait il prêt à m'aider sur ce coup là ?

  7. #7
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    si c'est possible à toi de nous le dire, de quel site s'agit-il ?

    Juste pour info, sache que de nombreux sites n'acceptent pas qu'on récupère leur contenu de cette façon (pages jaunes, mappy, etc.).

    Pourquoi cette question ? parce que le code VB éventuel va énormément dépendre de la structure HTML de la page ... et d'autres part certains sites proposent des flux RSS peut-être plus faciles à traiter.

    cf : http://cafeine.developpez.com/access/tutoriel/weblog
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    mon test a fonctionné sur le site en question... jusqu'à ma tentative de clic sur un lien interne à ce site.... Donc par conséquent, je suis convaincu que ce n'est qu'au niveau de mes arguments que cela ne passe pas... Je ne veux pas mettre en valeur le nom du site concerné car cela concerne mon travail... question de confidentialité... Cependant, en MP ce sera possible si vous êtes toujours interressés de m'aider sur ce point.

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Apparemment, personne n'est emballé par l'idée... tant pis merci quand même... quand j'aurais trouvé (si je trouve un jour), je posterai toutefois la solution afin que tout le monde puis en profiter...

  10. #10
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Le problème, c'est que tu nous demande de chercher dans le vide.

    Sans connaître le site en question, on ne peut te donner que des réponses générales et vagues.

    Dis-nous de quel site il s'agit et on pourra, peut-être, essayer de t'aider.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. [VBA-excel] import de fichier txt sans délimiteur de texte
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/01/2008, 05h49
  2. [VBA-EXCEL] Visibilité données dans le classeur
    Par mimic50 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/02/2007, 12h13
  3. [VBA Excel] - Copie données entre feuilles
    Par mimic50 dans le forum VBA Access
    Réponses: 1
    Dernier message: 27/11/2006, 13h43
  4. [VBA][Excel] importer une zone délimitée de texte
    Par Amanck dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/12/2005, 14h59
  5. [VBA Excel] Importer des tables Access dans Excel
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/12/2005, 11h44

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