Graphique VBA problème de données

Bonjour,

Je veux faire un histogramme, mes données pour les abscisses sont dans la colonne A et pour les ordonnées dans les colonnes B et C.

Actuellement, le graphique généré comprend 2 séries mais avec une seule et unique valeur.

J'ai écrit le code suivant mais il ne fonctionne pas :

Worksheets("Feuil").Shapes.AddChart.Select
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).Name = Worksheets("Feuil").Range("A65536").End(xlUp).Row
    ActiveChart.SeriesCollection(1).Values = Worksheets("Feuil").Range("C65536").End(xlUp).Row
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(2).Name = Worksheets("Feuil").Range("A65536").End(xlUp).Row
    ActiveChart.SeriesCollection(2).Values = Worksheets("Feuil").Range("C65536").End(xlUp).Row

Pouvez vous me dire où se trouve mon erreur.

Bonne journée et merci d'avance

Salut le forum

Soufou comme nouveau membres.

Plage de données de A1 à Cx (B1 et C1 contient le nom de la série)

Sub Graphe()
Dim Sh As Worksheet
Dim objChart As Chart, objRange As Range
Dim MaSerie As Series, Cpt As Byte
    Set Sh = Worksheets("Feuil1")
    Set objRange = Sh.Range("A2:C" & Sh.Cells(Rows.Count, 1).End(xlUp).Row)
    Set objChart = ThisWorkbook.Charts.Add
    objChart.ChartType = xlColumnClustered
    For Cpt = 2 To 3
        Set MaSerie = objChart.SeriesCollection.NewSeries
        MaSerie.Values = "=" & objRange.Columns(Cpt).Address(True, True, xlR1C1, True)
        MaSerie.XValues = "=" & objRange.Columns(1).Address(True, True, xlR1C1, True)
        MaSerie.Name = IIf(Cpt = 2, Sh.Range("B1"), Sh.Range("C1"))
    Next Cpt
    With objChart
        .HasTitle = True
        .ChartTitle.Characters.Text = "Titre du graphique"
        .Location Where:=xlLocationAsObject, Name:=Sh.Name
    End With
    Set Sh = Nothing
    Set objRange = Nothing
    Set objChart = Nothing
End Sub

Mytå

merci ça m'a aidé

sofou42

Bonjour à tous,

Excusez l'intrusion sur ce fil,

Mytå,

J'ai remarqué qu'à la fin de tes codes, tu remets les Set à Nothing

exemple ici:

    Set Sh = Nothing
    Set objRange = Nothing
    Set objChart = Nothing
End Sub

chose, que je ne fait jamais (sans doute mauvaise habitude)

  • quel risque y-a-t'il à ne pas écrire ces lignes ?
  • peux-tu m'en dire un peu plus ?

d'avance merci

Amicalement

Claude

édit: merci Mytå pour ta réponse

Re le forum

Claude, il faut tout de meme liberer les objets apres utilisation, le Set MonObjet = nothing

libère la memoire allouée à un objet. Sinon implicitement VBA libere l'objet lorsque

l'on sort de son champs de visibilité (sortie de fonction ou procedure), mais ca, c'est la theorie ,

en pratique, il vaut mieux toujours liberer ce que l'on a alloué.

Mytå

Rechercher des sujets similaires à "graphique vba probleme donnees"