Sélection d'une plage pour création d'un graphique
j
Bonjour,
Je créé un graphique suivant une plage de données que je défini depuis une cellule active.
cette cellule active est définie par un array = A9, J9...
mon programme bug au niveau de la sélection de ma cellule active ou après dans la définition de la sélection maplage
pouvez vous m'aider car c'est tellement basique que je ne comprends pas le bug :
merci beaucoup,
jasserin
Option Explicit
Dim titre As Variant
Dim MonGraphe As ChartObject
Dim maplage As Range
Dim selection As Variant
Dim horizontal As Integer
Dim vertical As Integer
Public Sub CreationGraphe1()
horizontal = 10
vertical = 50
Dim i As Byte
titre = ThisWorkbook.Worksheets("données mensuelles").Range("h7") & " - " & ThisWorkbook.Worksheets("données mensuelles").Range("a5") & ThisWorkbook.Worksheets("données mensuelles").Range("c8")
selection = Array("A9", "j9", "s9", "a97", "j97", "s97", "a185", "j185", "s185", "a273", "j273", "s273")
For i = 0 To UBound(selection, 1)
ThisWorkbook.Worksheets("données mensuelles").Range(selection(i)).Select
Set maplage = ThisWorkbook.Worksheets("données mensuelles").Range(ActiveCell.Offset(14, 0), ActiveCell.Offset(0, 6))
maplage.Select
Set MonGraphe = ThisWorkbook.Sheets("Obj. mensuels PT").ChartObjects.Add(horizontal, vertical, 500, 300) '(position x ds la feuille, position y dans la feuille, hauteur, largeur)
MonGraphe.Chart.SetSourceData maplage
With MonGraphe.Chart
.HasTitle = True
With .ChartTitle
.Characters.Text = titre.Text
End With
End With
horizontal = horizontal + 500
Next i
End SubBonsoir,
quelques adaptations qui permettent au code de passer sans erreur, je n'ai pas les données pour tester davantage.
Dim horizontal As Integer
Dim vertical As Integer
Public Sub CreationGraphe1()
horizontal = 10
vertical = 50
Dim i As Byte
Dim wss As Worksheet
Dim selcel As Range
Set wss = ThisWorkbook.Worksheets("données mensuelles")
titre = wss.Range("h7") & " - " & wss.Range("a5") & wss.Range("c8")
selection = Array("A9", "j9", "s9", "a97", "j97", "s97", "a185", "j185", "s185", "a273", "j273", "s273")
For i = 0 To UBound(selection, 1)
Set selcel = wss.Range(selection(i))
Set maplage = wss.Range(selcel.Offset(14, 0), selcel.Offset(0, 6).Address)
Set MonGraphe = ThisWorkbook.Sheets("Obj. mensuels PT").ChartObjects.Add(horizontal, vertical, 500, 300) '(position x ds la feuille, position y dans la feuille, hauteur, largeur)
MonGraphe.Chart.SetSourceData maplage
With MonGraphe.Chart
.HasTitle = True
With .ChartTitle
.Characters.Text = titre
End With
End With
horizontal = horizontal + 500
Next i
End Subj
super !
merci beaucoup
jasserin