VB Excel déplacement Objet Graphique
Résolu/Fermé
A voir également:
- VB Excel déplacement Objet Graphique
- Déplacer une colonne excel - Guide
- Liste déroulante excel - Guide
- Vente objet occasion entre particulier - Guide
- Graphique excel - Guide
- Si et excel - Guide
15 réponses
cousinhub29
Messages postés
968
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
25 novembre 2024
345
15 nov. 2010 à 14:09
15 nov. 2010 à 14:09
Re-,
Essaie ainsi, non testé (je ne connais pas la disposition de tes données...)
Essaie, et si cela ne fonctionne pas, donne la disposition de tes données...
Essaie ainsi, non testé (je ne connais pas la disposition de tes données...)
Private Sub ButtonGraphPoint1_Click() Dim TitlePT As String Dim TitleQN As String Dim NameGraph As String A = Worksheets("Summary").Cells(5, 7).Value B = Worksheets("Summary").Cells(6, 7).Value TitlePT = Worksheets("Summary").Cells(2, 2).Value & " | P & T" TitleQN = Worksheets("Summary").Cells(2, 2).Value & " | Q & N" Dim c As ChartObject Set c = Sheets("DATA").ChartObjects.Add(Range("J1").Left, Range("J1").Top, 300, 200) With c.Chart .ChartType = xlXYScatter .SetSourceData Source:=Sheets("DATA").Range("E" & A & ":E" & B), PlotBy _ :=xlColumns .SeriesCollection.NewSeries .SeriesCollection(1).XValues = "=DATA!R" & A & "C2:R" & B & "C2" .SeriesCollection(2).XValues = "=DATA!R" & A & "C2:R" & B & "C2" .SeriesCollection(2).Values = "=DATA!R" & A & "C9:R" & B & "C9" .SeriesCollection.NewSeries .SeriesCollection(3).XValues = "=DATA!R" & A & "C2:R" & B & "C2" .SeriesCollection(3).Values = "=DATA!R" & A & "C4:R" & B & "C4" .SeriesCollection.NewSeries .SeriesCollection(4).XValues = "=DATA!R" & A & "C2:R" & B & "C2" .SeriesCollection(4).Values = "=DATA!R" & A & "C8:R" & B & "C8" .SeriesCollection(1).Name = "=""P1(bar)""" .SeriesCollection(2).Name = "=""P2(bar)""" .SeriesCollection(3).Name = "=""T1(°C)""" .SeriesCollection(4).Name = "=""T2(°C)""" .ChartTitle.Characters.Text = TitlePT .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Temps" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Bar | °C" .Legend.Position = xlRight End With End Sub
Essaie, et si cela ne fonctionne pas, donne la disposition de tes données...
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 427
Modifié par ccm81 le 15/11/2010 à 13:37
Modifié par ccm81 le 15/11/2010 à 13:37
je crois que ça vient du fait que dans le code
TitilePT est le titre du graphique et pas son nom
ActiveSheet.ChartObjects(TitlePT).Left = Range("J1").Left
(ça bugge à ce moment là fatalement)
la méthode ChartObjects s'utilise soit avec
- ChartObjects(index) où index est le numéro du graphique (dans la collection)
- ChartObjects(nom) où nom est le nom (.name) du graphique
donc donner un nom (.name) au graphique ou l'appeler par son index
bonne suite
TitilePT est le titre du graphique et pas son nom
ActiveSheet.ChartObjects(TitlePT).Left = Range("J1").Left
(ça bugge à ce moment là fatalement)
la méthode ChartObjects s'utilise soit avec
- ChartObjects(index) où index est le numéro du graphique (dans la collection)
- ChartObjects(nom) où nom est le nom (.name) du graphique
donc donner un nom (.name) au graphique ou l'appeler par son index
bonne suite
cousinhub29
Messages postés
968
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
25 novembre 2024
345
15 nov. 2010 à 13:05
15 nov. 2010 à 13:05
Bonjour,
Ben, justement, on pourrait les voir, ces lignes "inutiles"?
Peut-être que ce serait justement à ce moment qu'on pourrait placer le graphique à l'endroit qui va bien....
@ te relire
'Création du grapique ...tout se passe bien je vous épargne les lignes inutiles
Ben, justement, on pourrait les voir, ces lignes "inutiles"?
Peut-être que ce serait justement à ce moment qu'on pourrait placer le graphique à l'endroit qui va bien....
@ te relire
Voici tout le code ce sera plus simple :
Merci d'avance.
Private Sub ButtonGraphPoint1_Click() Dim TitlePT As String Dim TitleQN As String Dim NameGraph As String 'Affectation des numéros de ligne A = Worksheets("Summary").Cells(5, 7).Value B = Worksheets("Summary").Cells(6, 7).Value TitlePT = Worksheets("Summary").Cells(2, 2).Value & " | P & T" TitleQN = Worksheets("Summary").Cells(2, 2).Value & " | Q & N" 'Création du graphique Pression et Température Sheets("DATA").Select Charts.Add ActiveChart.ChartType = xlXYScatter 'Série 1 (P1) ActiveChart.SetSourceData Source:=Sheets("DATA").Range("E" & A & ":E" & B), PlotBy _ :=xlColumns 'Création des nouvelles séries de données 'Série 2 (P2) ActiveChart.SeriesCollection.NewSeries 'Valeurs de X (toujours les mêmes quelque soit l'index du graphique) ActiveChart.SeriesCollection(1).XValues = "=DATA!R" & A & "C2:R" & B & "C2" ActiveChart.SeriesCollection(2).XValues = "=DATA!R" & A & "C2:R" & B & "C2" 'Valeurs de Y ActiveChart.SeriesCollection(2).Values = "=DATA!R" & A & "C9:R" & B & "C9" 'Série 3 (T1) ActiveChart.SeriesCollection.NewSeries 'Valeurs de X (toujours les mêmes quelque soit l'index du graphique) ActiveChart.SeriesCollection(3).XValues = "=DATA!R" & A & "C2:R" & B & "C2" 'Valeurs de Y ActiveChart.SeriesCollection(3).Values = "=DATA!R" & A & "C4:R" & B & "C4" 'Série 4 (T2) ActiveChart.SeriesCollection.NewSeries 'Valeurs de X (toujours les mêmes quelque soit l'index du graphique) ActiveChart.SeriesCollection(4).XValues = "=DATA!R" & A & "C2:R" & B & "C2" 'Valeur de Y ActiveChart.SeriesCollection(4).Values = "=DATA!R" & A & "C8:R" & B & "C8" 'Titres des séries de données ActiveChart.SeriesCollection(1).Name = "=""P1(bar)""" ActiveChart.SeriesCollection(2).Name = "=""P2(bar)""" ActiveChart.SeriesCollection(3).Name = "=""T1(°C)""" ActiveChart.SeriesCollection(4).Name = "=""T2(°C)""" ActiveChart.Location Where:=xlLocationAsObject, Name:="Summary" 'Titre du graphique et des axes With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = TitlePT .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Temps" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Bar | °C" End With ActiveChart.HasLegend = True ActiveChart.Legend.Select Selection.Position = xlRight 'Déplacement de la zone de graphique ActiveSheet.ChartObjects(TitlePT).Left = Range("J1").Left ActiveSheet.ChartObjects(TitlePT).Top = Range("J1").Top</ital>
Merci d'avance.
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 427
Modifié par ccm81 le 15/11/2010 à 13:57
Modifié par ccm81 le 15/11/2010 à 13:57
voila il y a bien une variable NameGraph déclarée qui est prévue
donc
- au moment de la creation du nouveau graphique il faut lui attribuer un nom en dur
1. NameGraph = "zzz"
2. ActiveChart.Name = NameGraph
- puis au moment du déplacement
3. ActiveSheet.ChartObjects(NameGraph).Left = Range("J1").Left
bonne suite
donc
- au moment de la creation du nouveau graphique il faut lui attribuer un nom en dur
1. NameGraph = "zzz"
2. ActiveChart.Name = NameGraph
- puis au moment du déplacement
3. ActiveSheet.ChartObjects(NameGraph).Left = Range("J1").Left
bonne suite
salut
Merci pour ton temps, j'ai essayé mais le probleme reste exactement le même "impossible de lire la propriete chartobject de la classe.....
Je vois pas pourquoi ça marche pas. je te renvoie le code juste pour que tu me dises si c'est bon ce que j'ai fait ou pas :
Merci d'avance
Merci pour ton temps, j'ai essayé mais le probleme reste exactement le même "impossible de lire la propriete chartobject de la classe.....
Je vois pas pourquoi ça marche pas. je te renvoie le code juste pour que tu me dises si c'est bon ce que j'ai fait ou pas :
Dim TitlePT1 As String Dim TitleQN1 As String Dim NameGraph As String 'Affectation des numéros de ligne A = Worksheets("Summary").Cells(5, 7).Value B = Worksheets("Summary").Cells(6, 7).Value TitlePT1 = Worksheets("Summary").Cells(2, 2).Value & " | P & T_1" TitleQN1 = Worksheets("Summary").Cells(2, 2).Value & " | Q & N_1" 'Création du graphique Pression et Température Sheets("DATA").Select Charts.Add ActiveChart.Name = TitlePT1 ActiveChart.ChartType = xlXYScatter 'Série 1 (P1) ActiveChart.SetSourceData Source:=Sheets("DATA").Range("E" & A & ":E" & B), PlotBy _ :=xlColumns 'Création des nouvelles séries de données 'Série 2 (P2) ActiveChart.SeriesCollection.NewSeries 'Valeurs de X (toujours les mêmes quelque soit l'index du graphique) ActiveChart.SeriesCollection(1).XValues = "=DATA!R" & A & "C2:R" & B & "C2" ActiveChart.SeriesCollection(2).XValues = "=DATA!R" & A & "C2:R" & B & "C2" 'Valeurs de Y ActiveChart.SeriesCollection(2).Values = "=DATA!R" & A & "C9:R" & B & "C9" 'Série 3 (T1) ActiveChart.SeriesCollection.NewSeries 'Valeurs de X (toujours les mêmes quelque soit l'index du graphique) ActiveChart.SeriesCollection(3).XValues = "=DATA!R" & A & "C2:R" & B & "C2" 'Valeurs de Y ActiveChart.SeriesCollection(3).Values = "=DATA!R" & A & "C4:R" & B & "C4" 'Série 4 (T2) ActiveChart.SeriesCollection.NewSeries 'Valeurs de X (toujours les mêmes quelque soit l'index du graphique) ActiveChart.SeriesCollection(4).XValues = "=DATA!R" & A & "C2:R" & B & "C2" 'Valeur de Y ActiveChart.SeriesCollection(4).Values = "=DATA!R" & A & "C8:R" & B & "C8" 'Titres des séries de données ActiveChart.SeriesCollection(1).Name = "=""P1(bar)""" ActiveChart.SeriesCollection(2).Name = "=""P2(bar)""" ActiveChart.SeriesCollection(3).Name = "=""T1(°C)""" ActiveChart.SeriesCollection(4).Name = "=""T2(°C)""" ActiveChart.Location Where:=xlLocationAsObject, Name:="Summary" 'Titre du graphique et des axes With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = TitlePT1 .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Temps" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Bar | °C" End With ActiveChart.HasLegend = True ActiveChart.Legend.Select Selection.Position = xlRight 'Déplacement de la zone de graphique ActiveSheet.ChartObjects(TitlePT1).Left = Range("J1").Left ActiveSheet.ChartObjects(TitlePT1).Top = Range("J1").Top
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ccm81,
J'ai essayé ton astuce mais ça ne fonctionne pas
Le problème reste le même
Cousinhub29
Pareil. Le problème est différent, on dirait qu'ici il ne veut même pas changer de nom ça bugge à la ligne
.ChartTitle.Characters.Text = TitlePT
...
Merci les gars de vous être penché dessus
Si vous avez d'autres idées...Sinon bah je vais sillonner le web voir si y'a pas le même souci chez quelqu'un d'autre.
J'ai essayé ton astuce mais ça ne fonctionne pas
Le problème reste le même
Cousinhub29
Pareil. Le problème est différent, on dirait qu'ici il ne veut même pas changer de nom ça bugge à la ligne
.ChartTitle.Characters.Text = TitlePT
...
Merci les gars de vous être penché dessus
Si vous avez d'autres idées...Sinon bah je vais sillonner le web voir si y'a pas le même souci chez quelqu'un d'autre.
cousinhub29
Messages postés
968
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
25 novembre 2024
345
15 nov. 2010 à 15:03
15 nov. 2010 à 15:03
Re-,
Scuse, enlève le .Characters en trop...
Scuse, enlève le .Characters en trop...
cousinhub29
Messages postés
968
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
25 novembre 2024
345
15 nov. 2010 à 15:07
15 nov. 2010 à 15:07
A quelle ligne?
cousinhub29
Messages postés
968
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
25 novembre 2024
345
15 nov. 2010 à 15:15
15 nov. 2010 à 15:15
Re-,
Si c'est pour AxisTitle, enlève également les .Characters (sur les 2 lignes)
Si c'est pour AxisTitle, enlève également les .Characters (sur les 2 lignes)
cousinhub29
Messages postés
968
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
25 novembre 2024
345
15 nov. 2010 à 15:21
15 nov. 2010 à 15:21
Essaie en rajoutant la ligne
Juste au dessus de cette ligne
.HasTitle = True
Juste au dessus de cette ligne
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 15/11/2010 à 16:22
Modifié par lermite222 le 15/11/2010 à 16:22
Bonjour tous,
J'ai resortit ça de mes archives, je n'ai pas modifié le code pour qu'il coïncide avec la question mais il fonctionne correctement avec l'avantage que l'ont peut le traiter ultérieurement avec sont nom.
pour l'activer ultérieurement
S! ça peu aider...
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
J'ai resortit ça de mes archives, je n'ai pas modifié le code pour qu'il coïncide avec la question mais il fonctionne correctement avec l'avantage que l'ont peut le traiter ultérieurement avec sont nom.
Sub graphique() Dim graph As ChartObject Set graph = Worksheets("feuil1").ChartObjects.Add(70, 6850, 430, 270) graph.Name = "RRR" With graph.Chart .ChartType = xl3DPie .SeriesCollection.NewSeries .SeriesCollection(1).XValues = Worksheets("feuil1").Range("A1:A20") .SeriesCollection(1).Values = Worksheets("feuil1").Range("A21:A40") .SeriesCollection(1).Name = "Votre financement sur base annuelle" .SeriesCollection(1).HasDataLabels = True .SeriesCollection(1).DataLabels.Position = xlLabelPositionBestFit .SeriesCollection(1).HasLeaderLines = True .SeriesCollection(1).ApplyDataLabels Type:=xlDataLabelsShowValue, _ AutoText:=True, LegendKey:=False, HasLeaderLines:=True '.SeriesCollection(1).LeaderLine.Border.ColorIndex = 20 .HasLegend = False .ChartArea.Interior.ColorIndex = xlPatternNone .ChartArea.Border.ColorIndex = xlPatternNone .PlotArea.Interior.ColorIndex = xlPatternNone .SeriesCollection(1).ApplyDataLabels Type:=xlDataLabelsShowLabelAndPercent .SeriesCollection(1).DataLabels.Font.Size = 10 ' .Name = "Arial" ' .FontStyle = "Normal" ' .Size = 12 End With Dim pt As Point For Each pt In graph.Chart.SeriesCollection(1).Points pt.Explosion = 10 Next pt End Sub
pour l'activer ultérieurement
Chart("RRR").Activate 'Ou... With Chart("RRR") .....
S! ça peu aider...
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 427
Modifié par ccm81 le 15/11/2010 à 18:42
Modifié par ccm81 le 15/11/2010 à 18:42
autre idée
peut être un problème venant du nom attribué au graphique (TitlePT1), apparemment le caractere & provoque une erreur (chez moi)
donc si le reste de ton code fonctionne, supprimer de & dans TiTlePT1
bon courage
peut être un problème venant du nom attribué au graphique (TitlePT1), apparemment le caractere & provoque une erreur (chez moi)
donc si le reste de ton code fonctionne, supprimer de & dans TiTlePT1
bon courage
Ccm81 ton idée n'était pas bête mais ça n'a pas fonctionné. Dommage
Sinon j'ai remarqué quelque chose :
lorsque j'exécute ma macro en mode pas à pas, au niveau de la commande :
le graph est bien nommé PT_1
mais lorsque plus tard je réactive le graphique avec le :
le nom du graphique change et devient
Donc le problème doit venir du With....End With
Sinon pour la création du graphique directement avec :
Ca ne marche pas, le code ne comporte pas de bug mais rien ne se passe...
Sinon j'ai remarqué quelque chose :
lorsque j'exécute ma macro en mode pas à pas, au niveau de la commande :
ActiveChart.Name = "PT_1"(ici j'ai changé un peu mais l'esprit reste le même)
le graph est bien nommé PT_1
mais lorsque plus tard je réactive le graphique avec le :
With ActiveChart ... ... ... End with
le nom du graphique change et devient
ActiveChart.Name = "Summary Graphique 77"
Donc le problème doit venir du With....End With
Sinon pour la création du graphique directement avec :
Dim c As ChartObject Set c = Sheets("DATA").ChartObjects.Add(Range("J1").Left, Range("J1").Top, 300, 200) With c.Chart .ChartType = xlXYScatter .SetSourceData Source:=Sheets("DATA").Range("E" & A & ":E" & B), PlotBy _ :=xlColumns .SeriesCollection.NewSeries .SeriesCollection(1).XValues = "=DATA!R" & A & "C2:R" & B & "C2" .SeriesCollection(2).XValues = "=DATA!R" & A & "C2:R" & B & "C2" .SeriesCollection(2).Values = "=DATA!R" & A & "C9:R" & B & "C9" .SeriesCollection.NewSeries .SeriesCollection(3).XValues = "=DATA!R" & A & "C2:R" & B & "C2" .SeriesCollection(3).Values = "=DATA!R" & A & "C4:R" & B & "C4" .SeriesCollection.NewSeries .SeriesCollection(4).XValues = "=DATA!R" & A & "C2:R" & B & "C2" .SeriesCollection(4).Values = "=DATA!R" & A & "C8:R" & B & "C8" .SeriesCollection(1).Name = "=""P1(bar)""" .SeriesCollection(2).Name = "=""P2(bar)""" .SeriesCollection(3).Name = "=""T1(°C)""" .SeriesCollection(4).Name = "=""T2(°C)""" .ChartTitle.Characters.Text = TitlePT .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Temps" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Bar | °C" .Legend.Position = xlRight End With
Ca ne marche pas, le code ne comporte pas de bug mais rien ne se passe...
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 16/11/2010 à 10:19
Modifié par lermite222 le 16/11/2010 à 10:19
Re,
Tu ne nomme pas le graph..
et après,
J'ai testé tes premières lignes et chez moi le graph se crée normalement, ensuite comme je n'ai pas tes données... ça va plus.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Tu ne nomme pas le graph..
Set c = Sheets("DATA").ChartObjects.Add(Range("J1").Left, Range("J1").Top, 300, 200) c.Name = "PT_1"
et après,
With Sheets("DATA").Shape("PT_1") ... ... ... End with
J'ai testé tes premières lignes et chez moi le graph se crée normalement, ensuite comme je n'ai pas tes données... ça va plus.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Voila ce que j'ai mis :
Mais en faisant un pas à pas sur les promières lignes comme indiqué dans le code le graph ne se crée toujours pas....
Dim TitlePT1 As String Dim TitleQN1 As String Dim NameGraph As String A = Worksheets("Summary").Cells(5, 7).Value B = Worksheets("Summary").Cells(6, 7).Value TitlePT1 = Worksheets("Summary").Cells(2, 2).Value & " | P & T_1" TitleQN1 = Worksheets("Summary").Cells(2, 2).Value & " | Q & N_1" Dim GraphPT1 As ChartObject Set GraphPT1 = Sheets("DATA").ChartObjects.Add(Range("J1").Left, Range("J1").Top, 300, 200) GraphPT1.Name = "PT_1" e ' Le graph ne se crée toujours pas With GraphPT1.Chart .ChartType = xlXYScatter .SetSourceData Source:=Sheets("DATA").Range("E" & A & ":E" & B), PlotBy _ :=xlColumns .SeriesCollection.NewSeries .SeriesCollection(1).XValues = "=DATA!R" & A & "C2:R" & B & "C2" .SeriesCollection(2).XValues = "=DATA!R" & A & "C2:R" & B & "C2" .SeriesCollection(2).Values = "=DATA!R" & A & "C9:R" & B & "C9" .SeriesCollection.NewSeries .SeriesCollection(3).XValues = "=DATA!R" & A & "C2:R" & B & "C2" .SeriesCollection(3).Values = "=DATA!R" & A & "C4:R" & B & "C4" .SeriesCollection.NewSeries .SeriesCollection(4).XValues = "=DATA!R" & A & "C2:R" & B & "C2" .SeriesCollection(4).Values = "=DATA!R" & A & "C8:R" & B & "C8" .SeriesCollection(1).Name = "=""P1(bar)""" .SeriesCollection(2).Name = "=""P2(bar)""" .SeriesCollection(3).Name = "=""T1(°C)""" .SeriesCollection(4).Name = "=""T2(°C)""" .HasTitle = True .ChartTitle.Text = TitlePT1 .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Temps" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Bar | °C" .Legend.Position = xlRight End With
Mais en faisant un pas à pas sur les promières lignes comme indiqué dans le code le graph ne se crée toujours pas....