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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
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 commande 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) sous forme d'entiers
- 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.