Bonjour à tous,
Je me permets d'ouvrir un nouveau sujet car je n'ai pas trouvé la réponse à ma question en faisant une recherche sur le forum. Merci à ceux qui auront la patience de lire mon sujet en entier.
Voilà mon problème : j'ai une feuille Excel avec un certain nombre de tableaux de nombres, tous de la même taille, et je voudrais pour chaque tableau produire une représentation graphique sous forme de surface, dans une nouvelle feuille.
Plus précisément disons que les tableaux s'appellent Tabl(A,B) (A et B sont des indices variant de 1 à 12 et 0 à 5 respectivement). Chaque tableau Tabl(A,B) s'étale sur une certaine plage de données : Cells(Ligne(A,B)+i,Colonne(A,B)+j) , pour i,j variant dans un ensemble d'indices. Je voudrais écrire un code VB avec une double boucle sur A et B qui me produise automatiquement des graphiques Graph(A,B) dans de nouvelles feuilles. Comment faire ?
J'ai déjà enregistré une macro qui trace le premier tableau Tabl(1,0), voilà le code :
Sub DessinerSurface()
Charts.Add
ActiveChart.ChartType = xlSurface
ActiveChart.SetSourceData Source:=Sheets("Resultats" ).Range("E4:AM82" ), _
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Don1_Param0"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Don1_Param0"
.Axes(xlCategory).HasTitle = False
.Axes(xlSeries).HasTitle = False
.Axes(xlValue).HasTitle = False
End With
End Sub
OK ça marche bien pour mon premier tableau mais :
- suis-je obligé d'utiliser la commade Range pour spécifier la source ? la commande Cells serait plus pratique vu que je connais les fonctions Ligne(A,B) et Colonne(A,B), qui me disent où commence mon Tabl(A,B), sous forme d'entiers et pas sous forme de "BH12:DZ954" ;
- au lieu d'écrire "Don1_Param0" comme titre, et surtout comme nom de feuille, je voudrais écrire "DonA_ParamB", où A et B sont mes indices ; comment concaténer chaînes de caractères et variables entières ? je sais le faire en C avec des %ld mais pas en VB ;
- pour finir, l'orientation par défaut de la vue 3D ne me plaît pas trop ; j'ai des valeurs qui me plaisent pour les paramètres Hauteur, Perspective et Rotation mais je ne voudrais pas les recopier à la main pour chacun de mes 72 graphiques, comment automatiser le procédé ? il doit bien y avoir une méthode de l'objet Chart qui fait ça mais laquelle...
Désolé si les questions sont débiles, mais je ne suis pas un pro du VB et tout ce que j'ai comme référence est un petit bouquin assez limité et plutôt orienté Access. Toute aide est la bienvenu, merci d'avance !
Mouletabille.
Message édité par mouletabille le 21-08-2008 à 10:41:16