Bonjour,
j'ai regardé sur le forum, et bien que mon problème se rapproche de celui de certaines personnes, je n'ai pas reussi a trouver mon bonheur.
Je cherche a créer une macro qui me génère un graphique. La plage de données utilisée étant variable, je ne peux pas l'entrer en dur dans le code.
J'arrive a 'isoler' la plage de données, mais une fois que je veux lancer le graphique, cela ne marche pas.
Je récupère les informations a l'aide d'une inputbox. Voila le code :
L'inputbox contient deux TexteBox (cel1 et cel2). La premiere donne la premiere cellule de la plage, et la deuxieme donne le nombre de variables a utiliser pour réaliser le graphique.
ca plante ici :
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
35
36
37
38
39
40
41
42
43
44
45
46
47 Private Sub but_ok_Click() Dim aa As String Dim bb As String Dim col As Integer Dim col2 As Integer Dim lig As Integer Dim lig2 As Integer Dim cpt As Integer Dim cc As Integer Dim zz As Range 'cel1 : réponse a la question "cellule en haut a gauche de la plage de donnée" aa = cel1.Text aa1 = Left(aa, 1) aa2 = Right(aa, 1) 'cel2 : réponse a la question : "combien de variables dans la plage?" bb = cel2.Text 'création de la zone de données pour le graphique cc = Val(bb) 'première cellule de la plage de données Range(aa).Activate lig = ActiveCell.Row col = ActiveCell.Column 'nombre de lignes dans la plage de données Range(aa).Select cpt = Range(Selection, Selection.End(xlDown)).Rows.Count 'on regarde le numéro de la ligne, et le numéro de la colonne de la derniere 'cellule de la plage (en bas a droite donc) lig2 = lig + cpt - 1 col2 = col + cc - 1 'GRAPHIQUE Charts.Add ActiveChart.ChartType = xlLine ActiveChart.SetSourceData Source:=Sheets("Feuil2").Range(Cells(lig, col), Cells(lig2, col2)), PlotBy:=xlColumns ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil2" End SUB
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveChart.SetSourceData Source:=Sheets("Feuil2").Range("Cells(lig, col):Cells(lig2, col2)"), PlotBy:=xlColumns
est-ce parce que les graphiques veulent un range dy type range("A1:Z3")? et pas avec des Cells ?
Et une autre question : a chaque fois que je fais cela, cela me le met quand même dans un onglet différent (avec pour le coup aucun graphe vu que cela ne fonctionne pas), commetn puis-je faire pour éviter la création d'un nouvel onglet ?
J'utilise Excel 2003
Merci a tous,
Yoord
Partager