Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

BANDEAU DE COTATIONS DES VALEURS DU CAC40


Information sur la source

Catégorie :Divers Classé sous : bourse, ticker, cac40, finance, sbf120 Niveau : Débutant Date de création : 13/02/2006 Date de mise à jour : 18/02/2006 14:06:24 Vu / téléchargé: 13 196 / 1 226

Note :
7,6 / 10 - par 5 personnes
7,60 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Ticker est comme son nom l'indique aux anglicistes un afficheur en temps réel des cours de bourse.
Une barre amovible apparaît en haut de l'écran dans laquelle défile les cours des valeurs SBF et indices internationnaux que vous aurez sélectionnés dans les fichiers textes fournis.
Les valeurs sont rafraichies toutes les minutes.
Le code utilise des API windows et quelques astuces de manipulations de chaines. Les valeurs sont affichées dans le Caption de la Forme, et dans un Label si bien qu'une fois la fenête du programme minimalisée, on peut continuer à suivre l'évolution des cotations du SBF dans la barre des tâches en cours.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

13 février 2006 20:32:10 :
Ajout d'une fonction de lecture de page html internet
14 février 2006 19:16:32 :
Ajout d'un bandeau supplémentaire et modif du code
14 février 2006 19:21:53 :
erreur dans le zip
14 février 2006 19:44:22 :
Autre erreur ds le zip
14 février 2006 21:14:32 :
Erreur dans le code corrigée et changement de sens des indices boursiers
15 février 2006 08:46:53 :
Modif de l'explication
15 février 2006 13:48:53 :
Correction du code
15 février 2006 19:26:59 :
Ajout d'un module de classe pour la gestion de la souris Suppression d'un timer et ajout d'un nouveau Modification du code pour que les évènements de remise à jour se déroulent mieux
16 février 2006 11:13:20 :
La der..
17 février 2006 23:06:34 :
Modif du code : Click droit sur le label = modif vitesse défilement, click gauche = inversion de sens de défilement
18 février 2006 12:54:30 :
Oups ! Un bug !
18 février 2006 14:06:24 :
Suppression d'un timer

Commentaires et avis

signaler à un administrateur
Commentaire de drissou le 14/02/2006 13:30:46

Sympa ton prog, simple et efficace
le seul problème est que lorsqu'il y a une mise à jour le bandeau reprend au début.
j'ai modifié un tout petit peu ton prog pour permettre la reprise du défilement làoù on était au moment de la mise à jour..

Drissou

signaler à un administrateur
Commentaire de razzor le 14/02/2006 13:48:32

Merci,
Je cherche de mon côté mais ta solution de modif est la bienvenue  !
L'étape suivante sera l'affichage conjugué du SF 120 pour les connaisseurs et des indices boursiers internationnaux sur deux bandes glissantes.

signaler à un administrateur
Commentaire de drissou le 14/02/2006 16:38:49

dans ton module j'ai mis

Global Texte As String
Global Pos As Long

ta proc MiseàJour devient : seulement changement
Public Sub MiseàJour()
    Dim sResult             As String
    Dim intDebut            As Long
    Dim intSuite            As Long
    Dim intSuite2           As Long
    Dim valeur              As String
    Dim s                   As String
    Dim i                   As Long
    Const sUrl = "http://www.boursorama.com/tableaux/cours_az.phtml?MARCHE=1rPCAC"
    
    ' ----
'    Open App.Path & "\fichier.htm" For Output As #1
'    Print #1, sResult
'    Close #1
    sResult = GetUrlFile(sUrl)

    For i = 0 To UBound(Tabl)
        valeur = Tabl(i) 'nom de la valeur du CAC
        intDebut = InStr(sResult, valeur) ' emplacement dans le fichier html
        If intDebut = 0 Then GoTo fin
        intSuite = InStr(intDebut, sResult, "right") + 7 ' repère emplacement côte valeur
        intSuite2 = InStr(intSuite, sResult, "</TD>")
        
' ici la modification
Texte = Texte & Tabl(i) & Space(2) & _
                     Mid(sResult, intSuite, intSuite2 - intSuite) & "€" & Space(1) & _
                     Mid(sResult, InStr(intSuite, sResult, "%") - 5, 6) & Space(10)
fin:
    Next i
    
End Sub


et ta procédure Defile devient

Public Sub Defile(frmBo As Form)
    Dim str As String
    Dim sts As String
    Dim stx As String
    Pos = Pos + 1
    If Pos > Len(Texte) Then
        Pos = 0
    End If
    ' défilement de droite à gauche
    str = Left(Texte, Pos)
    sts = Mid(Texte, Pos + 1)
    stx = sts + str
    frmBo.Caption = stx
End Sub

voilà

maintenant sur le double bandeau, je pense que ce n'est pas possible dans le caption..
il faudra agrandir ta fenêtre un peu plus
pour ma part je ne connais pas bien les indices boursiers, mais je serai intéressé par tes trouvailles

bon courage
Driss

signaler à un administrateur
Commentaire de razzor le 14/02/2006 19:08:49

J'adopte ta méthode, elle est convaincante avec un petit bémol cependant que j'ai aussi éprouvé.

Dans cette méthode, tu ne gères pas la longueur de la variable Texte qui ne cesse d'enfler au fur et à mesure des déclenchements timer.

Au bout d'un moment certain, cette variable atteint le max de sa capacité et les données ne sont plus rafraichies alors que le message continue de défiler.
C'est pourquoi je suis obligé de tronquer la fin de la variable texte par :

texte = Mid(Texte,1,6000)

6000 est une valeur déterminée au réel en analysant la longueur de la variable texte après chaque déclenchement timer.

J'ai remanié le code avec cette fois ci deux bandeaux indépendants avec les valeurs du SBF120 et les valeurs des indices Boursiers internationnaux.

Bien merci à toi pour ton code génial (je le pense) qui m'a permis de franchir une étape supplémentaire me permettant de renouveler les infos toutes les minutes.

signaler à un administrateur
Commentaire de drissou le 15/02/2006 12:08:09

tu as raison j'ai oublié de réinitialiser au début de ta proc MiseàJour..
je vais douwnloader ta nouvelle version

Drissou

signaler à un administrateur
Commentaire de drissou le 15/02/2006 13:04:04

Nickel ton prog..
peut être pourrais tu diminuer le nombre de timers
pour la mise à jour , je mettrais un seul timer avec 1 fois sur 2 mise un jour d'un des deux bandeaux.
Quant à ceux pour le déroulement ils n'ont d'intérêt que si tu veux faire défiler de manière différentes tes deux bandeaux
( enfin sans vouloir critiquer..)
A quand le SBF 250, voire le choix de valeurs..


' remarques sur tes remarques
au lieu de limiter la taille de texte et texte2, il faut remettre à vide dans chaque procédure de maj : texte=vbnullstring
texte2=vbnullstring
et le problèmr est réglé

' une petite 'amélioration' pour arrêter provisoirement le défilement si tu veux noter une valeur
rajoute
Private Sub lblInfo_Click()
tmrIndice.Enabled = Not (tmrIndice.Enabled)
tmrTicker.Enabled = Not (tmrTicker.Enabled)
End Sub
le défilement s'arrêtera et repartira à chaque click

Drissou

signaler à un administrateur
Commentaire de drissou le 15/02/2006 14:22:11

quelle est la fréquence de mise à jour des cotations sur Boursorama ?

signaler à un administrateur
Commentaire de razzor le 15/02/2006 19:47:25

J'ai refait le code au mieux en suivant tes indications.
Par contre, le fait de réinitialiser la variable Texte a pour conséquence de refaire démarrer le bandeau au début, chose qu'on voulait éviter, rappelle toi. J'ai fini par trouver une méthode qui m'oblige à attendre la fin du défilement de tout le texte sur le bandeau avant de réinterroger.
J'ai géré le problème du figeage du bandeau par un évenement de la souris lorsque qu'elle passe au dessus de la forme. (j'ai emprunté le module de classe et l'ai retravaillé un peu)
Je n'ai gardé qu'un timer pour le déclenchement des remises à jour.
Pour répondre à ta question, j'ai l'impression que l'information est renouvelée toutes les minutes sur Boursorama. Mais il faut forcer la mise à jour sur le site lorsque tu navigues sur la page web.
En tout cas, c'est une bonne collaboration qui permet d'avancer.
Merci.

signaler à un administrateur
Commentaire de drissou le 17/02/2006 13:35:55

allez on continue... ;o)
1 . dans ta form load diminue un peu la hauteur de ton lbl à 290 sinon à 320 on voit le haut d'une deuxième ligne
2. pour gagner un peu d'efficacité, il faut éviter à chaque timer de refaire un accès disque pour lire le fichier et avoir l'url.
il faudrait charge tous ces chemins une seule fois, au début du programme.
3. je pense aussi qu'il faudrait faire une procédure commune pour gérer l'affichage avec comme paramètres : le texte, le nom du label/caption de la forme et le sens de défilement, voire la variable de position (qui peut être un tableau indicé)
comme cela (la seule différence étant le sens de défilement)
au départ on crée des tableaux indicés
- tableau de chaines équivalent au 'texte'
- un tableau d'indice label avec par exemple -1 pour le caption de la form
- un tableau de sens de défilement
- un tableau de positions

Driss

signaler à un administrateur
Commentaire de razzor le 17/02/2006 23:19:28

J'ai revu un peu tout le code comme tu le préconisais, par contre je ne vois pas trop l'avantage d'un tableau de sens de défilement et du tableau de positions. Peut être peux mieux m'expliquer ce que tu sous entends par là ? est ce que cela rajoutera de la fluidité au code ?
Dans l'exécution du code, je reste tributaire des temps d'accès  aux adresses url et comme il y en a une vingtaine, ca prend un peu de temps. D'où l'effet de ralentissement visible à l'oeil lorsqu'il y a remise à jour des données.
J'ai rajouté une commande de changement de sens de défilement en pointant la souris sur le label et en cliquant droit, et modification de la vitesse de défilement par click gauche.

signaler à un administrateur
Commentaire de drissou le 20/02/2006 14:42:44

Bonnes améliorations..

Ce que je te proposais c'est au cas ou tu voudrais rajouter d'autres cotations  SBF 240  etc.. et donc rajouter d'autres bandeaux, tu vas vite être débordé avec Pos1, pos2 pos3..
donc tu fais un tableau de positions Pos()
De même dans cette version les deux bandeaux tournent dans le même sens mais si tu fais un tableau Sens() tu pourras l'utiliser dans ta procédure Défile à la place de 'intSens'
Tu peux faire un tableau Bandeau() qui contiendra l'indice du badeau à utiliser

voici un exemple d'adaptation de ta procédure Défile

Public Sub Defile(Indice As Long) ' Texte As String, IntSens As Long, Bandeau As Long)
    Dim str As String
    Dim sts As String
    Dim stx As String
    Static pos1 As Long
    Static pos2 As Long
    ' on a créé
    ' - un tableau 'Texte()' qui contient les textes à télécharger
    ' - un tableau 'Pos()' qui contient les positions
    ' - un tableau 'Sens()' qui contiendra le sens de défilement
    ' - un tableau de labels 'lblInfo' dont l'indice commence à 1
    
    pos(Indice) = pos(Indice + 1)
    If pos(Indice) > Len(Texte(Indice)) Then
            pos(Indice) = 0
    End If
    Select Case Sens(Indice)
        Case 0
            ' défilement de droite à gauche
            str = Left(Texte, pos1)
            sts = Mid(Texte, pos1 + 1)
            stx = sts + str
        Case 1
            ' défilement de gauche à droite
            str = Right(Texte, pos1)
            sts = Mid(Texte, 1, Len(Texte) - pos1)
            stx = str + sts
    End Select
    Select Case Indice
        Case 0
            frmPanneau.Caption = stx
        Case Else
            frmPanneau.lblInfo(Indice).Caption = stx
    End Select
End Sub

je ne l'ai pas testée mais je pense que cela pourrait convenir en adaptant tes variables et ton label.
avec ceci tu peux rajouter 2, 3 ou 10 bandeaux : plus besoin d'augmenter tes lignes de programmation.
enfin sur ce point..

Driss

signaler à un administrateur
Commentaire de Yaminator le 13/12/2007 19:22:37

salut, j'aime bien ton programme, j'ai une question :
Où récupère tu les valeurs ? Fil rss ? ou ?
Merci pour ta réponse

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

JEU DE SIMULATION [ par cumu ] NetTrader est un jeu qui vous permet de goûter aux joies et aux frayeurs de la Bourse mais sans le moindre risque. Achetez, revendez, gagnez ou perdez Cherche STAGIAIRE - Finance & VBa/POO/Bdd [ par BaptisteC ] Salut à tous, Je suis actuellement en stage et l'entreprise dans laquelle je suis cherche un nouveau stagiaire pour me succéder. Alors, s j'ai besoin d'aide pour réaliser un mini projet en finance [ par zouhair6666 ] zouhair_xzouhair_xsalut tt le monde j'ai un petit projet en VBTout d'abord je me présente je suis un étudiant en mathématiques appliquées aux sciences passioné de bourse -cherche aide pour logiciel [ par philou23 ] bonour je suis nouveau icije suis passioné de bourse jai un projet de logiciel mais je suis une burne en programation idee est simple Lecture des cours de bourse des échos [ par sacotte ] BonjourJ'avais trouvé en 2002 un code pour lire les cours de bourse des échos.Ce code marchait fort bien mais il ne lisait pas les cours les plus haut Lire les info de la bourse (tse) !!! [ par deltaxxx ] Salut !!! Je ne suis pas très bon en progammation et j'aurais besoin d'aide car je veut créé un programme qui serais cap message pour BOURSICOTTEUR sur le programme de bourse [ par narkotek ] slt boursicotteur,bravo pour ton programme, je l'ai pas encore vu mais ca a l'air d'etre duu bon boulotj'ai juste un petit souci : il bug quand je fai cours de bourse [ par chauman ] Bonjour, je souhaite d&#233;velopper un logiciel d'analyse boursi&#232;re. Pour cela j'ai besoin de r&#233;cup&#233;rer de mani&#232;re automatis&#23 mise en forme [ par elpais ] Le probl&#232;me que l'on rencontre est lorsque l'on ouvre un fichier de finance sur yahoo exemple(http://fr.old.finance.yahoo.com/d/quotes.csv?s=@^AE Requête HTTP - site de bourse [ par momogre ] J'ai une base Access dans laquelle je récupère les cours de bourse par l'API wininet. Cela fonctionne bien sous Yahoo car le fichier retourné est du t


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.