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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    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


    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
    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
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    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 : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    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
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    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
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    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à ?

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