Plage de donnée dynamique et graphe 3D

  • Initiateur de la discussion Initiateur de la discussion d3d9x
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

d3d9x

XLDnaute Nouveau
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
 

Pièces jointes

Re : Plage de donnée dynamique et graphe 3D

Malheureusement non, j'ai déjà réussi à résoudre ce type de problèmes pour des graphes 2D en utilisant une combinaison plages nommées.
plageX = index(maFonction(mesParamètres);;1)
plageY = index(maFonction(mesParamètres);;2)

où maFonction renvoie un tableau/matrice à n lignes et 2 colonnes. J'utilise ensuite les deux plages précédentes lors de la réalisation de mon graphique, en utilisant comme x la formule ='nomFeuille'!plageX et en y la formule ='nomFeuille'!plageY

Cette méthode ne peut pas fonctionner pour un graphe surface, car au lieu de disposer d'une seule série, je dispose potentiellement de milliers de séries. Et je ne souhaite absolument pas créer 1001 plages de données, et les insérer, même automatiquement, dans mon graphe.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour