For-Next-Schleife + Sheetname
14.09.2004 10:43:16
Piotr
ich habe ein Problem. Ich möchte gerne in einer Schleife den Sheetnamen übernehmen. Der Sheetname soll in der Schleife erkannt werden.
Bei maueller Eingabe des Sheetnamen (N10) gibt es keine Probleme. Die Zeile sieht dann so aus:
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "='N10'!R3C3:R4C3"
In einer Schleife, die so aussieht,
For i = 10 To sheets.count
ActiveChart.SeriesCollection(i).XValues = "='"N"&i&'"!R3C3:R4C3
Next i
bekomme ich andauern die Fehlermeldung: Objektvariable oder With-Blockvariable nicht festgelegt (Fehler 91)!
In meinem Makro sind vorher sind keine Variablen definiert. Liegt es daran und wenn ja was müsste ich vorher eingeben oder habe ich einen Syntaxfehler?
Kurz zur Vorgeschichte: Mit dem Diagramm-Assistenten habe ich ein XY-Diagramm erzeugt. Durch "Hinzuführen kann man diesem Diagramm weitere Geraden einfügen. Da ich sehr viele solche Diagramme erstellen muß, wollte ich es mit einem Makro vereinfachen. Leider wird in der Schleife der Sheetname nicht übernommen.
Das zuletzt formulierte Makro sieht so aus:
Sub Diagramme_erstellen()
' Makro2 Makro
' Makro am 10.09.2004 von Piotr aufgezeichnet
Sheets("N10").Select
Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetSourceData Source:=Sheets("N80").Range("D21"), PlotBy:= _
xlRows
ActiveChart.SeriesCollection(1).XValues = "='N10'!R3C3:R4C3"
ActiveChart.SeriesCollection(1).Values = "='N10'!R3C4:R4C4"
ActiveChart.SeriesCollection(1).Name = "='N10'!R1C2:R1C4"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).XValues = "='N11'!R3C3:R4C3"
ActiveChart.SeriesCollection(2).Values = "='N11'!R3C4:R4C4"
ActiveChart.SeriesCollection(2).Name = "='N11'!R1C2:R1C4"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(3).XValues = "='N12'!R3C3:R4C3"
ActiveChart.SeriesCollection(3).Values = "='N12'!R3C4:R4C4"
ActiveChart.SeriesCollection(3).Name = "='N12'!R1C2:R1C4" 'Bis hierhin gibt es keine Probleme. Es wird ein Diagramm erstellt
For i = 10 To 20
ActiveChart.SeriesCollection.NewSeries 'Ab hier wird eine Diagramm hinzugefügt (Reihe 4)
Sheets("tabelle1").Select 'Dies habe ich nur eingeführt, um zu schauen, ob der Sheetname erkannt wird.
Cells(i -9, 1) = Sheets("N" & i).Name
Cells(i -9, 2) = "N-Test " & i 'Das funktioniert soweit auch ganz gut
'Ab hier gibt es bereits Probleme, Objektvariable oder With-
Blockvariable nicht festgelegt (Fehler 91)!
ActiveChart.SeriesCollection(i - 79).XValues = "='N83'!R3C3:R4C3"
ActiveChart.SeriesCollection(i - 79).Values = "='N83'!R3C4:R4C4"
ActiveChart.SeriesCollection(i - 79).Name = "='N83'!R1C2:R1C4"
ActiveChart.Location Where:=xlLocationAsNewSheet
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "N 80"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "x-achse"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y-achse"
End With
Next i
End Sub