Automatiser la creation d'un graphique

alasco

XLDnaute Nouveau
Bonsoir à tous,

Tout d'abord je tiens à vous remercier pour votre attention si vous lisez ce post.
Je suis débutant et en pleine découverte de vba.

Mon problème est le suivant.
Je souhaiterai créer un fichier excel qui puisse extaire des données qui serviront à créer un graphique.
Je m'explique extraire par exemple les données d'un indice boursier via un logiciel tel que Bloomberg pour en ressortir un graphique.
L 'objectif du programme serait de pouvoir mettre à jour ce graphique simplement en entrant les dates que l'on veut et sélectionner grâce à une liste déroulante l'indice dont on a besoin.

heureux de vous lire bientôt!
 

Gardien de phare

XLDnaute Accro
Re : Automatiser la creation d'un graphique

Bonsoir,
Telle que, la question me semble avoir une probabilité plutôt faible de réponse. Créer un graphique via Vba, ce qui est loin d'être toujours pertinent, suppose de savoir...
  • quel type de graphique
  • comment est organisée la source de données
  • etc.
Bref, un petit classeur avec un exemple de données et le résultat attendu serait bienvenu.
 

alasco

XLDnaute Nouveau
Re : Automatiser la creation d'un graphique

Bonsoir Francois,

Merci pour ta reponse.Je ne sais pas si j'ai l'autorisation de publier le fichier, je me renseignerais assez rapidement..

Néanmoins, tu as en pièce jointe une capture d’écran de ce que je souhaiterais réaliser.

Est ce suffisant??
 

Pièces jointes

  • Capture.jpg
    Capture.jpg
    66.1 KB · Affichages: 103
  • Capture.jpg
    Capture.jpg
    66.1 KB · Affichages: 116
  • Capture.jpg
    Capture.jpg
    66.1 KB · Affichages: 111

Misange

XLDnaute Barbatruc
Re : Automatiser la creation d'un graphique

Bonjour, coucou François
Les données boursières sont publiques, donc si tu récupères les données sur un site public, il n'y a rien de confidentiel.
Si tu tapes "cours de bourse" dans la boite de recherche en haut de cette page, tu auras des tas de fils qui répondent au même type de question que la tienne.
On ne peut rien faire à partir d'une image pour t'aider.
Le principe est en général le suivant :
automatiser la récupération des données sur un site web ou via un fichier externe
définir des noms dynamiques, soit avec un tableau excel, soit avec une formule contenant la fonction decaler
utiliser ces noms pour construire le graphique.
mais avec ce que tu nous donnes, on ne peut pas aller plus loin.
 

alasco

XLDnaute Nouveau
Re : Automatiser la creation d'un graphique

Merci Misange pour ta réponse.

Malheureusement, je ne pourrais pas partager le fichier en question car il contient également des informations à caractère privé (performance de gestion etc.)
Ce fichier excel a servi à mes prédécesseurs notamment pour extraire des infos d'un logiciel développé en interne (dans l'entreprise dans laquelle je travaille).

Néanmoins, j'ai trouvé dans ce fichier certaines fonctions que je pourrais p.e réutiliser dans mon cas. Pour ne rien vous cacher, j'ai compris le fonctionnement de ces fonctions dans les grandes lignes qui servent a extraire les historiques d'un cours ou les performances d'un fond ( ex: ComLT.sec permet de rapatrier les données)
J'aimerais avoir vos commentaires sur ces fonctions. Par exemple, à quoi sert le mot clé "nothing", "set", la condition "if not", "CVErr" ?


Public Function h_perf_by_id(id As Long, DateDebut As Date, DateFin As Date, official As Boolean)
Application.Volatile (False)
Dim b As Boolean
Dim s As New ComLT.sec
Set s = s.s_by_id(id)
If Not s Is Nothing Then
If official Then
h_perf_by_id = s.perf(DateDebut, DateFin, b)
Else
h_perf_by_id = s.perf_non_officiel(DateDebut, DateFin, b)
End If
If Not b Then
h_perf_by_id = CVErr(xlErrNA)
End If
Else
h_perf_by_id = CVErr(xlErrNA)
End If
End Function



------------------------------------------------------------------------------------------------------

Public Function h_prix_by_id(id As Long, DateVL As Date, bDateExact As Boolean)
Application.Volatile (False)
Dim d As Date
Dim b As Boolean
Dim s As New ComLT.sec
Set s = s.s_by_id(id)
If Not s Is Nothing Then
h_prix_by_id = s.quote_and_quotedate(DateVL, d, b)
If b Then
If bDateExact Then
If d <> DateVL Then
h_prix_by_id = CVErr(xlErrNA) 'trop vieux
End If
End If
Else
h_prix_by_id = CVErr(xlErrNA)
End If
Else
h_prix_by_id = CVErr(xlErrNA)
End If
End Function
 

Misange

XLDnaute Barbatruc
Re : Automatiser la creation d'un graphique

Bonjour
Les questions que tu poses portent sur des mots clefs classiques de VBA. Tu aurais avantage à lire quelques tutos sur ce langage, par exemple ici
Ce lien n'existe plus

nothing = rien
donc not is nothing = ce n'est pas rien donc c'est quelque chose, M. De La Palisse en aurait dit autant

if not n=1 est l'équivalent de if n<>1
if not is nothing(expression) : si l'expression testée existe ou renvoie vrai alors...

CVerr n'est pas utilisé très souvent. C'est une fonction VBA qui renvoie la nature d'une erreur. des explications détaillées sur le site (en anglais) de Chip Pearson
Returning Errors From VBA

Sinon quand tu poses une question sur un forum, il est toujours préférable de joindre un classeur exemple. PAs TON classeur avec des données confidentielles mais un classeur dans lequel tu enlèves tout ce qui n'est pas en rapport direct avec ta question, que tu anonymises et dans lequel tu ne gardes qu'un nombre de lignes/colonnes nécessaires pour faire comprendre ta question et permettre au répondeur de te proposer une solution sans avoir besoin de créer lui-même (ou elle même :) ) un classeur.
 

Gardien de phare

XLDnaute Accro
Re : Automatiser la creation d'un graphique

Bonsoir, coucou Misange,

Les fonctions que tu cites n'ont pas de rapport, semble-t-il, avec une création de graphique via Vba !
Comme le suggère Misange et ton image, ton problème de graphique serait plutôt du registre graphique dynamique avec des plages sources elles mêmes dynamiques.

Si tu ne peux pas publier LE classeur, publies UN classeur nettoyé de ce qui relèverait du secret industriel.

Outre excelabo, et spécifiquement sur la question des graphiques dynamiques, tu pourrais aller voir le remarquable site de Chandoo (un autre MVP), bon c'est en anglais, mais les gens qui traitent de la bourse parlent tous anglais, non ?

Comment coder une création de graphique sans voir comment les données sont organisées ????

Le recours à Vba dans les graphiques, est de mon point de vue justifié pour :
- créer des dizaines ou centaines de graphiques ;
- mettre en forme des séries de données nombreuses ;
- réaliser des opérations qu'Excel ne sait pas gérer en natif.

Pour rendre un graphique dynamique, il existe des solutions beaucoup plus souples et performantes que Vba dans la majorité des cas.

Bref, la balle est dans ton camp si tu veux poursuivre. Tu sais, en général, ici, une question sur les graphiques (ou autre d'ailleurs) ne met pas 24 heures pour avoir des réponses diverses, variées et argumentées.
 

Discussions similaires

Statistiques des forums

Discussions
312 336
Messages
2 087 389
Membres
103 534
dernier inscrit
Kalamymustapha