Bonjour à tous,
Je souhaite vous soumettre un problème auquel je fais face. Je n'ai malheureusement pas trouvé la réponse que je recherchais en naviguant sur différents forums d'entraide.
Le problème concerne l'utilisation de plages de données dynamiques afin de réaliser un graphe 3D (graphe surface).
Contexte:
Je souhaite visualiser en 3D l'évolution d'une fonction f(x,y). J'ai donc réalisé une fonction en VBA qui me renvoie un tableau.
La fonction VBA fonctionne parfaitement, et me génère le tableau suivant sous forme matriciel :
0 x1 x2 x3 ....
y1 f(x,1y1) f(x1,y2) etc ...
y2
etc...
Pour créer le graphique surface, je n'ai qu'à sélectionner le tableau complet comme plage de donnée, et le graphe surface est réalisé.
L'objectif et problème est le suivant: j'aimerai créer une plage/nom plageDeDonnées = maFonction(paramètres), et envoyer ce nom au graphe. De ce fait, lorsque je modifierai le nombre de lignes ou de colonnes de mon tableau ou la fonction directement, le graphe se mettra à jour et s'adaptera aux dimensions, sans jamais avoir à afficher le tableau de valeurs.
Cela fonctionne parfaitement pour des graphes 2D, mais je bloque sur le graphe 3D.
En collant ='Feuil1'!plageDeDonnees dans la plage de données du graphe, 'Référence non valide!'
Pourtant en mettant =plageDeDonnees dans une cellule, et en propageant la formule sous forme matriciel, je retombe bien sur le résultat précédent, à savoir le tableau désiré.
Le fichier excel est joint
Voilà si vous avez des idées, merci d'avance =)
NB:
la fonction est écrite sous la forme
options base 1
function maFonction( paramètres...) as variant
dim resultat() as double
redim resultat(1 to nb_lignes, 1 to nb_colonnes) as double
maFonction = resultat