Sélection d'une plage pour création d'un graphique

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 Sub

Bonsoir,

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 Sub

super !

merci beaucoup

jasserin

Rechercher des sujets similaires à "selection plage creation graphique"