Bonjour à tous!
Je débute en VBA et cela fait deux jours que j'essaye de faire une macro sans résultat, j'ai besoin d'aide pour trouver ce qui coince dans mon code.
Je n'ai pas pu mettre le fichier Excel en pièce jointe donc j'ai mis quelques impressions écrans, et ci-dessous les explications sur ce que j'aimerais obtenir:
J'ai deux feuilles excel:
-la feuille 1 qui contient les différentes plages de données
-la feuille 2 qui contiendra les graphiques relatifs à chaque plage de données
Les deux feuilles sont sous forme d'une grosse matrice 12x12, dont chaque élément ((1,1), (1,2), (1,3) etc...) est une colonne de 180 valeurs (ce sont des valeurs en fonction d'un angle). J'ai donc au total 12x12x180 valeurs.
J'aimerais pour chacune des plages de données un graphique type aires qui se place correctement et se mets aux bonnes dimensions comme j'ai fait à titre d'exemple dans la feuille 2.
J'ai commencé à écrire le code pour la création et le placement du graphique (pas encore la mise au dimensions), mais j'ai pour commencer une erreur 1004 à la ligne "Set Values = Worksheets("Feuil1").Range(Cells(X, Y), Cells(U, V))" et je ne pense pas que ce sera la seule!
Pouvez-vous m'aider?
Coralie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Sub Graphe() ' ' Graphe Macro ' Dim i As Integer Dim j As Integer For i = 1 To 12 For j = 1 To 12 'Coordonnées de le première case de la plage de données allant en ordonées du graphe Dim X As Long X = 5 + (j - 1) * 186 'ligne Dim Y As Long Y = 1 + 3 * i 'colonne" 'Coordonnées de le dernière case de la plage de données allant en ordonées du graphe Dim U As Long U = 5 + (j - 1) * 186 + 180 'ligne Dim V As Long V = 1 + 3 * i ' colonne Dim Graphic As Chart, Values As Range Cells(X, Y).Select 'Pour que le graphique se place au bon endroit Set Values = Worksheets("Feuil1").Range(Cells(X, Y), Cells(U, V)) Set Graphic = ThisWorkbook.Charts.Add Graphic.ChartType = xlArea Graphic.SetSourceData Values, Range("B5,B185") ' toujours la même chose (de 0 à 180°), donc pas besoin de faire varier avec i et j Next Next End Sub
Partager