VBA excel problème macro seriescolection.name
Résolu
franck_213
Messages postés
18
Statut
Membre
-
franck_213 Messages postés 18 Statut Membre -
franck_213 Messages postés 18 Statut Membre -
Bonjour à vous,
Mon problème est le suivant :
J'ai créé une macro en vba produissant un graphique contennant plusieurs séries. Le graphique est produit sans problème mais dès que j'esseye d'attribuer un nom à ces séries, un message d'erreur m'apparait (error 1004, method 'Cells' of object global failed).
Bref rien de très précis. Voici le code ainsi que le fichier qui sert d'exemple (ci joint). A noter que le nombre de séries ainsi que le nombre de colonne n'est pas fixé. Ce problème étant normalement palié.
Sub Macro3()
Dim r1 As Range
Dim i As Integer
Dim nom As String
CurrentFileName = ActiveWorkbook.Name
CurrentSheetName = ActiveWorkbook.ActiveSheet.Name
nbcolonne = Range(Cells(3, 3), Cells(3, 3).End(xlToRight)).Columns.Count 'nb de colonne
nbseries = Range(Cells(3, 3), Cells(3, 3).End(xlDown)).Rows.Count 'nb de série
nbligne = nbseries + 2
i = 2
Set r1 = Sheets(CurrentSheetName).Range(Cells(1, 3), Cells(nbligne, nbcolonne + 2)) 'Donné du graphique
gtitle = "File: " & CurrentFileName 'titre du graphique
xtitle = "Wave Length (nm)"
ytitle = "Something : D"
Charts.Add
ActiveChart.ChartType = xlXYScatterLinesNoMarkers 'type nuage de pt
ActiveChart.SetSourceData Source:=r1, PlotBy:=xlRows ' graphique du type ligne (pas colonne !)
ActiveChart.Location Where:=xlLocationAsObject, Name:=CurrentSheetName
While i <= (nbligne)
j = i + 1
nom = Cells(j, 1).Value 'l'erreur se produit ici
ActiveChart.SeriesCollection(i).Name = nom
i = i + 1
Wend
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = gtitle
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = xtitle
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = ytitle
End With
ActiveChart.HasLegend = True
ActiveWindow.Visible = False
Windows(CurrentFileName).Activate
End Sub
http://membres.lycos.fr/francoisdelaet/exemple.xls le fichier en question
Merci de votre précieuse aide
François
Mon problème est le suivant :
J'ai créé une macro en vba produissant un graphique contennant plusieurs séries. Le graphique est produit sans problème mais dès que j'esseye d'attribuer un nom à ces séries, un message d'erreur m'apparait (error 1004, method 'Cells' of object global failed).
Bref rien de très précis. Voici le code ainsi que le fichier qui sert d'exemple (ci joint). A noter que le nombre de séries ainsi que le nombre de colonne n'est pas fixé. Ce problème étant normalement palié.
Sub Macro3()
Dim r1 As Range
Dim i As Integer
Dim nom As String
CurrentFileName = ActiveWorkbook.Name
CurrentSheetName = ActiveWorkbook.ActiveSheet.Name
nbcolonne = Range(Cells(3, 3), Cells(3, 3).End(xlToRight)).Columns.Count 'nb de colonne
nbseries = Range(Cells(3, 3), Cells(3, 3).End(xlDown)).Rows.Count 'nb de série
nbligne = nbseries + 2
i = 2
Set r1 = Sheets(CurrentSheetName).Range(Cells(1, 3), Cells(nbligne, nbcolonne + 2)) 'Donné du graphique
gtitle = "File: " & CurrentFileName 'titre du graphique
xtitle = "Wave Length (nm)"
ytitle = "Something : D"
Charts.Add
ActiveChart.ChartType = xlXYScatterLinesNoMarkers 'type nuage de pt
ActiveChart.SetSourceData Source:=r1, PlotBy:=xlRows ' graphique du type ligne (pas colonne !)
ActiveChart.Location Where:=xlLocationAsObject, Name:=CurrentSheetName
While i <= (nbligne)
j = i + 1
nom = Cells(j, 1).Value 'l'erreur se produit ici
ActiveChart.SeriesCollection(i).Name = nom
i = i + 1
Wend
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = gtitle
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = xtitle
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = ytitle
End With
ActiveChart.HasLegend = True
ActiveWindow.Visible = False
Windows(CurrentFileName).Activate
End Sub
http://membres.lycos.fr/francoisdelaet/exemple.xls le fichier en question
Merci de votre précieuse aide
François
A voir également:
- VBA excel problème macro seriescolection.name
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
3 réponses
Bonjour
J'ai rectifié ton code pour le rendre fonctionnel :
à plus
J'ai rectifié ton code pour le rendre fonctionnel :
Sub Macro3()
Dim r1 As Range
Dim i As Integer
Dim nom As String
CurrentFileName = ActiveWorkbook.Name
CurrentSheetName = ActiveWorkbook.ActiveSheet.Name
nbcolonne = Range(Cells(3, 3), Cells(3, 3).End(xlToRight)).Columns.Count
nbseries = Range(Cells(3, 3), Cells(3, 3).End(xlDown)).Rows.Count
nbligne = nbseries + 2
i = 2
Set r1 = Sheets(CurrentSheetName).Range(Cells(1, 3), Cells(nbligne, nbcolonne + 2))
gtitle = "File: " & CurrentFileName
xtitle = "Wave Length (nm)"
ytitle = "Something : D"
Charts.Add
ActiveChart.ChartType = xlXYScatterLinesNoMarkers
ActiveChart.SetSourceData Source:=r1, PlotBy:=xlRows
ActiveChart.Location Where:=xlLocationAsObject, Name:=CurrentSheetName
While i <= (nbligne)
j = i + 1
nom = Sheets(CurrentSheetName).Cells(j, 1).Value
If nom <> "" Then ActiveChart.SeriesCollection(i).Name = nom
i = i + 1
Wend
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = gtitle
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = xtitle
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = ytitle
End With
ActiveChart.HasLegend = True
ActiveWindow.Visible = False
Windows(CurrentFileName).Activate
End Sub
à plus