Bonjour,
J'ai un problème assez particulier que je n'arrive pas à résoudre:
Je travaille sur la mise en forme des données d'entrée/sortie d'un code de calcul exécuté sous excel en vba.
Nous utilisons une feuille de calcul ayant une certaine mise en forme.
Cette feuille fait appelle à un code de calcul externe ayant le format".xla".
Ce code de calcul existe depuis plusieurs années et a subis pas mal d'évolutions depuis ses débuts, le fichier excel servant de support aux données d'entrées/sorties également.
En effet, plusieurs versions de ce fichier existent (nous en sommes actuellement à la version 8).
Plusieurs études ont été mené avec des versions de ce fichiers plus anciennes que celle actuelle et ce serai une vraie perte de temps de refaire les calculs dans la nouvelle version du fichier excel.
Aujourd'hui nous sommes arrivés à un degré de maturité suffisant pour commencer à développer une interface utilisateur un peu plus "sexy". J'utilise donc des Userform pour créer cette interface.
Mon problème aujourd'hui est donc que j'aimerai afficher des graphiques présents dans certaines feuilles de mon fichier excel dans le Userform que je crée, quelque soit la version de la feuille utilisée.
Le soucis est que suivant la version de la feuille, les graphiques n'ont pas forcements les mêmes noms.
J'aimerai donc trouver une solution qui me permette à tous les coups et sans message d'erreur de me récupérer le bon graphique.
Voici le bout de code en question qui me permet d'ouvrir le bon graphique, mais cela ne fonctionne que dans la dernière version !
J'ai une idée actuellement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 'Ouverture des Graphiques de la page Start: 'Graphique1: Set Graph1 = Worksheets("Start").ChartObjects("Graphique 4").Chart Nomimage = ThisWorkbook.Path & Application.PathSeparator & "Graph1.gif" Graph1.Export Filename:=Nomimage, FilterName:="GIF" Me.Image1.Picture = LoadPicture(Nomimage)
Quelque soit la version de la feuille de calcul, les graphiques sont toujours positionnés au même endroit.
Je suppose qu'il existe un moyen grâce à vba de récupérer, par exemple "le graphique qui se trouve le plus haut dans la feuille" puis le deuxième plus haut, en fonction de leurs coordonnées.
Et du coup, si cette solution existe, il me faudrait également un moyen de fixer la position des graphes pour que l'utilisateur ne puisse plus les déplacer.
Je vous propose cette solution, mais si vous en voyez d'autres plus adaptées/simples, n'hésitez pas à m'en faire part !
Partager