Graphique avec plage de données variables
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.
Code:
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 |
ca plante ici :
Code:
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