[VBA] Problème de syntaxe ajout graphique

miky973

XLDnaute Occasionnel
Bonjour à tous,

Je rencontre un problème de syntaxe sur mon tableau, et je n'ai pas réussit à solutionner mon problème.

Need your help!!

Code:
Sub graphPays()

Dim objChart As Chart, A As Range
Range("A93:D93").Select
Range(Selection, Selection.End(xlDown)).Select
 Charts.Add
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=Sheets("Résultat").Range("A91:D91")
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Résultat"
    ActiveWindow.Visible = False
    Selection.Delete
    Range(Selection, Selection.End(xlDown)).Select
    Charts.Add
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=Sheets("Résultat").[COLOR="red"]Range(Selection, Selection.End(xlDown))[/COLOR], _
        PlotBy:=xlColumns
    ActiveChart.SeriesCollection(3).Delete
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Graphique"

    
End Sub


J'ai un soucis de débogage à ce niveau ActiveChart.SetSourceData Source:=Sheets("Résultat").Range(Selection, Selection.End(xlDown)),

Et oui étant un tableau variable je ne veux pas des cellules vides en cas de selection.


Merci pour votre aide.

Best regards,

Miky
 

Pièces jointes

  • Classeur1.xls
    33 KB · Affichages: 68
  • Classeur1.xls
    33 KB · Affichages: 67
  • Classeur1.xls
    33 KB · Affichages: 72
Dernière édition:

kjin

XLDnaute Barbatruc
Re : [VBA] Problème de syntaxe ajout graphique

Bonjour,
Si, il y a du monde...
Pour m'aider?
Ca c'est moins sûr...vu qu'on est pas tous équipé en décodeur, boule de cristal, marc de café... et que si tu avais pris la peine de joindre un tout petit fichier avec un petit mot d'explication...
Note que les sélection sont à proscrire, elle ne servent à rien d'ailleurs
Code:
Sub graphPays()
Dim cht As Chart, c As Range
With Sheets("Résultat")
    Set c = .Range("A91:D" & .Range("A91").End(xlDown).Row)
End With
Set cht = Charts.Add
With cht
    .SetSourceData Source:=c
    .ChartType = xlColumnClustered
    .Location Where:=xlLocationAsObject, Name:="Résultat"
End With
End Sub
A+
kjin
 

miky973

XLDnaute Occasionnel
Re : [VBA] Problème de syntaxe ajout graphique

Bonjour,

Si, il y a du monde...

Ca c'est moins sûr...vu qu'on est pas tous équipé en décodeur, boule de cristal, marc de café... et que si tu avais pris la peine de joindre un tout petit fichier avec un petit mot d'explication...
Note que les sélection sont à proscrire, elle ne servent à rien d'ailleurs
Code:
Sub graphPays()
Dim cht As Chart, c As Range
With Sheets("Résultat")
    Set c = .Range("A91:D" & .Range("A91").End(xlDown).Row)
End With
Set cht = Charts.Add
With cht
    .SetSourceData Source:=c
    .ChartType = xlColumnClustered
    .Location Where:=xlLocationAsObject, Name:="Résultat"
End With
End Sub
A+
kjin

Bonjour kjin,
Ci-joint pièce jointe pour la création de mon graph

En premier lieu, ça n'affiche pas mon tableau dans graphique en second lieu, j'ai voulu ajouté du code et sa bugguait encore plus donc voilà mon fichier de base en espérant que tu puisses faire quelquechose pour moi.

merci pour ton aide.
Best regards.

A+
 

Pièces jointes

  • Classeur1.xls
    33 KB · Affichages: 70
  • Classeur1.xls
    33 KB · Affichages: 82
  • Classeur1.xls
    33 KB · Affichages: 95

kjin

XLDnaute Barbatruc
Re : [VBA] Problème de syntaxe ajout graphique

Re,
Code:
Sub graphPays()
Dim cht As Chart, Plage As Range, Nom As Range
With Sheets("Résultat")
    Set Plage = .Range("A93:A" & .Range("A65000").End(xlUp).Row)
    Set Nom = .Range("A91")
End With
Set cht = Charts.Add
With cht
    For i = 1 To 2
        .SeriesCollection.NewSeries
        .SeriesCollection(i).XValues = "=Résultat!" & Plage.Address(, , xlR1C1)
        .SeriesCollection(i).Values = "=Résultat!" & Plage.Offset(0, i).Address(, , xlR1C1)
        .SeriesCollection(i).Name = "=Résultat!" & Nom.Offset(0, i).Address(, , xlR1C1)
    Next
    .ChartType = xlColumnClustered
    .Location xlLocationAsObject, "Graphique"
End With
End Sub
A+
kjin
 

miky973

XLDnaute Occasionnel
Re : [VBA] Problème de syntaxe ajout graphique

Re,
Code:
Sub graphPays()
Dim cht As Chart, Plage As Range, Nom As Range
With Sheets("Résultat")
    Set Plage = .Range("A93:A" & .Range("A65000").End(xlUp).Row)
    Set Nom = .Range("A91")
End With
Set cht = Charts.Add
With cht
    For i = 1 To 2
        .SeriesCollection.NewSeries
        .SeriesCollection(i).XValues = "=Résultat!" & Plage.Address(, , xlR1C1)
        .SeriesCollection(i).Values = "=Résultat!" & Plage.Offset(0, i).Address(, , xlR1C1)
        .SeriesCollection(i).Name = "=Résultat!" & Nom.Offset(0, i).Address(, , xlR1C1)
    Next
    .ChartType = xlColumnClustered
    .Location xlLocationAsObject, "Graphique"
End With
End Sub
A+
kjin

Re-kjin,

Merci pour ton aide ça avanceeee ^^ Sauf que qu'il y a pitit problème
Ton code est super mais c'est que je n'ai pas qu'un seul tableau dans ma feuille et donc ta formule récupère toutes les autres valeurs de mes autres tableaux sans fin :s

Que dois je faire pour y remédier?
 

miky973

XLDnaute Occasionnel
Re : [VBA] Problème de syntaxe ajout graphique

Re, oui mais c'est bien ce que j'ai fait, en revanche J'ai une erreur dans le code (en rouge)
Code:
Sub graphPays()


Dim cht As Chart, Plage As Range, Nom As Range
Range("A93:D" & Range("D93").End(xlDown).Row).Select
With Sheets("Résultat")
    Set Plage = .Range("A93:D" & .Range("D93").End(xlDown).Row)
    Set Nom = .Range("A91")
End With
Set cht = Charts.Add
With cht
    For i = 1 To 3
        .SeriesCollection.NewSeries
        .SeriesCollection(i).XValues = "=Résultat!" & Plage.Address(, , xlR1C1)
       [COLOR="red"][B] .SeriesCollection(i).Values = "=Résultat!" & Plage.Offset(0, i).Address(, , xlR1C1)[/B][/COLOR]        .SeriesCollection(i).Name = "=Résultat!" & Nom.Offset(0, i).Address(, , xlR1C1)
    Next
    .ChartType = xlColumnClustered
    .Location xlLocationAsObject, "Graphique"
End With
End Sub
Ca me dit impossible de définir la propriété Values de la classe series.

.SeriesCollection(i).Values = "=Résultat!" & Plage.Offset(0, i).Address(, , xlR1C1)

Et encore merci pour ton aide, j'aimerai une explication du pouquoi cela me donne ça si possible
A+

Miky
 

kjin

XLDnaute Barbatruc
Re : [VBA] Problème de syntaxe ajout graphique

Re
Code:
Range("A93:D" & Range("D93").End(xlDown).Row).Select
With Sheets("Résultat")
    Set Plage = .Range("A93:D" & .Range("D93").End(xlDown).Row)
C'est quand même hallucinant ! Où as tu vu que j'avais écris ça ?:rolleyes:
J'ajoute des séries au graphique en décalant (offset) la plage "A93:An" de la valeur de "i" , donc pour ajouter une série, celle de la plage "D3:Dn", il suffit de remplacer
Code:
For i = 1 to 2
par
Code:
For i = 1 to 3
Je n'avis pas intégré la colonne D, les formules renvoyant une erreur
A+
kjin
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260