VBA excel problème macro seriescolection.name
Résolu
franck_213
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
franck_213 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
franck_213 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
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