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 :

Récup cours de bourses en auto VBA [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Novembre 2011
    Messages : 67
    Points : 50
    Points
    50
    Par défaut Récup cours de bourses en auto VBA
    Bonsoir,
    N'ayant pas de connaissances en HTML, lecture de code sources, j'en viens a vous pour m'aider à finir mon programme.
    En fait, j'un fichier excel avec plusieurs code ISIN dans la colonnes A et je souhaite boucler sur les codes et a aller chercher sur le site de (http://www.boursorama.com/bourse/ ) le cours du jours pour chaque valeur et me le mettre dans la colonnes B. Je sais que ce n'est pas évident mais je vous assure que j ai passé pas mal de temps à lire les tutos, notamment celui de Qwazerty mais sans succès.
    Ci joint le fichier excel.
    Merci par avance
    Fichiers attachés Fichiers attachés

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Novembre 2011
    Messages : 67
    Points : 50
    Points
    50
    Par défaut début de code
    Bonjour,
    Voila à quoi ca pourrait ressembler le code que je souhaite mettre en place
    Merci de vtre aide
    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
    su récup_cours
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim InputboursoramaZoneTexte As HTMLInputElement
    Dim InputboursoramaBouton As HTMLInputElement
     
       'Chargement d'une page Web boursorama
       IE.Navigate "www.boursorama.fr"
     
       'Affichage de la fenêtre IE
       IE.Visible = True
     
       'On attend le chargement complet de la page
       WaitIE IE
     
       'On pointe le membre Document
       Set IEDoc = IE.document
     
       'On pointe notre Zone de texte
       Set InputboursoramaZoneTexte = IEDoc.all("q")
     
    derligne = Range("A" & Rows.Count).End(xlUp).Row
    z = 2
    For z = 2 To derligne
     
       'On définit le texte que l'on souhaite placer à l'intérieur
       InputboursoramaZoneTexte .Value = range("A" & z).value
     
       'On attend la fin de la recherche
       WaitIE IE
    Next
    'le problème est que je sais pas comment faire pour récupérer le cours de la valeur .
     
       'On libère les variables
       Set IE = Nothing
       Set IEDoc = Nothing

  3. #3
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Tu as lu les conditions sur le site ?

    2. PROPRIETE INTELLECTUELLE
    2.1 Propriété du Site

    Le Site, son contenu, ses textes et illustrations, ses photographies et images sont la propriété de BOURSORAMA et/ou de tiers contractuellement liés à BOURSORAMA, titulaires des droits de propriété intellectuelle du Site. Il est interdit de copier et/ou de télécharger tout ou partie du Site, de son contenu, de son catalogue, de ses textes et illustrations, de ses photographies et images.

    BOURSORAMA Vous confère un droit d'usage privé, non collectif et non exclusif, sur le contenu du Site. Ce droit d’usage comprend le droit de reproduire pour stockage aux fins de représentation sur écran monoposte et de reproduction pour tirage sur papier. Toute mise en réseau, toute rediffusion, sous quelque forme, même partielle, est donc interdite. Ce droit est personnel, il est réservé à votre usage exclusif. Il n'est transmissible en aucune manière.

    Vous vous engagez en conséquence à :

    - ne télécharger sur votre ordinateur le contenu du Site que pour un usage personnel et limité dans le temps.
    - n'imprimer sur support papier les pages du Site téléchargées qu'à la condition que lesdites copies soient strictement limitées à un usage personnel.

    Vous vous interdisez notamment de modifier, copier, reproduire, télécharger, diffuser, transmettre, exploiter commercialement et/ou distribuer de quelque façon que ce soit les pages du Site, ou les codes informatiques des éléments composant le Site.

    Certaines informations contenues sur le Site sont actualisées en temps réel et sont données en licence par les membres ou des tiers. Vous vous engagez à ne pas copier, reproduire, altérer, modifier, créer des oeuvres dérivées ou divulguer au public tout ou partie du contenu du Site sans le consentement préalable et écrit de BOURSORAMA ou celui des tiers concernés.

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Novembre 2011
    Messages : 67
    Points : 50
    Points
    50
    Par défaut
    Bonjour,
    En faite, j'ai donné l'exemple de boursorama, parce que le site que j'utilise au travail est dans le même style mais il n'est pas accessible au grand public. Donc je cherche juste un bout de code a adapter sur le site que je veux (sachant que les deux sont en HTML avec une seule zone de recherche).
    Merci encore

  5. #5
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Un début de piste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim IE As InternetExplorer
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = False
    IE.Silent = True
    IE.Navigate "http://LeSite.com"
    Do Until IE.ReadyState = READYSTATE_COMPLETE
       DoEvents
    Loop 'attend la fin du chargement
    Contenu = IE.Document.DocumentElement.innerHTML
    La variable "Contenu" contiendra le code source (html) de la page. Il faudra alors utiliser la fonction InStr() pour "repérer" une chaine de caractère, puis la fonction Mid() pour extraire le texte voulu.

    Et en fin de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    IE.Quit
    Set IE = Nothing
    Lire aussi les cours et tutoriels pour apprendre Excel.

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Novembre 2011
    Messages : 67
    Points : 50
    Points
    50
    Par défaut
    Bonsoir pc75, le forum
    Merci pour la piste
    j'ai passé la soirée à chercher et finalement j'ai réussi à faire un code qui marche sauf que j'ai un message d'erreur " Permission refusée" au moment de boucler sur le deuxieme code ISIN.
    Ci joint le fichier avec le code VBA et les commentaires.
    Merci de votre aide.
    Fichiers attachés Fichiers attachés

  7. #7
    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
    Bonjour,

    Une piste à creuser:
    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
    54
    55
    56
    Sub récup_cours()
     
      Dim IE As New InternetExplorer
      Dim IEDoc As HTMLDocument
      Dim InputboursoramaZoneTexte As HTMLInputElement
      Dim FormboursoramaCherche  As DispHTMLElementCollection
      Dim htmlProfil As HTMLGenericElement
     
      'Chargement d'une page Web boursorama
      IE.Navigate "http://www.boursorama.com/bourse/"
      'On attend le chargement complet de la page
      Do Until IE.readyState = READYSTATE_COMPLETE
        DoEvents
      Loop
     
      'Affichage de la fenêtre IE
      IE.Visible = True
     
      derligne = Range("A" & Rows.Count).End(xlUp).Row
      z = 2
      For z = 2 To derligne
        'On pointe le membre Document
        Set IEDoc = IE.document
        Do Until IEDoc.readyState = "complete"
          DoEvents
        Loop
        'On pointe notre Zone de texte
        Set InputboursoramaZoneTexte = IEDoc.all("q")
     
        'On définit le texte que l'on souhaite placer à l'intérieur
        InputboursoramaZoneTexte.Value = Range("A" & z).Value
        'On pointe la Form qui contient Zone de Texte + Bouton (entre autres)
        Set FormboursoramaCherche = IEDoc.forms("search-form")
        'On exécute l'action Submit de la Form
        FormboursoramaCherche.submit
        Do Until IE.readyState = READYSTATE_COMPLETE
          DoEvents
        Loop
        Set IEDoc = IE.document
        Do Until IEDoc.readyState = "complete"
          DoEvents
        Loop
     
        'On va chercher un des éléments ayant un id
        Set htmlProfil = IEDoc.all("content-gauche")
        'Ensuite à partir de la on va chercher l'info dont on a besoin
        Sheets("Feuil1").Range("B" & z) = htmlProfil.all(2).innerText
        'On attend le chargement complet de la page
        'd8b22Ui_Icon48
     
      Next
      'On libère les variables
      IE.Quit
      Set IE = Nothing
      Set IEDoc = Nothing
    End Sub
    A noter: Le readyState du Document
    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!

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Novembre 2011
    Messages : 67
    Points : 50
    Points
    50
    Par défaut
    Bonjour AlainTech, le forum
    C'est parfait, le programme ne s'arrete plus. donc c est le fameux readyState qui posait probleme
    Merci pour ta contribution.

  9. #9
    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
    Bonjour,

    Citation Envoyé par Maxgad Voir le message
    donc c est le fameux readyState qui posait probleme
    Pas seulement. Il ne faut pas oublier de redéfinir le Document à chaque changement de page.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set IEDoc = IE.document
    Dans ton code, tu le faisais hors de la boucle. Donc, une fois la page changée suite à la recherche, le Document d'origine n'était plus disponible.
    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!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récup cours de bourses en auto VBA
    Par Labaioune dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 09/11/2013, 15h47
  2. VBA Cours de Bourse
    Par Eliott44 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/04/2013, 12h29
  3. [XL-2010] VBA supprimer cours de bourse
    Par charly120 dans le forum Excel
    Réponses: 0
    Dernier message: 26/03/2013, 11h04
  4. Récupérer cours de bourse
    Par gatita dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 24/04/2007, 21h29
  5. Cours de bourse, chat, quelle technologie ?
    Par topaze dans le forum Services
    Réponses: 4
    Dernier message: 03/01/2005, 09h48

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