Oliver I Koeller
Grünschnabel
Liebe VBA Professionals,
bei unten angefügtem Programmcode bekomme ich manchmal, manchmal nicht, in der Zeile 23
Set BereichM = Sheets("Grafik").Range(Cells(2, 2), Cells(Zn, 3))
die Fehlermeldung Laufzeitfehler'1004': Anwendungs- oder objektdefinierter Fehler.
in der Zeile 28
Range(BereichM).Select
die Fehlermeldung Laufzeitfehler'1004'ie Methode 'Range' für das Objekt'_Global' ist fehlgeschlagen.
Seit mehreren Stunden versuche ich dem Grund für den Fehler auf die Spur zu kommen leider bisher vergeblich.
Ich habe den Eindruck, als wenn der Fehler willkürlich auftritt, kann ich mir aber nicht vorstellen.
Was mache ich falsch
Vielleicht kann mir hier jemand helfen?
Vielen Dank
Ich arbeite mit VBA unter Excel (Office 97 SP1) mit Windows XP.
(Das Programm muß auch unter Office 97 lauffähig sein, da ja nicht jeder gleich bei Erscheinen einer neuen Office-Version diese auch updatet.)
bei unten angefügtem Programmcode bekomme ich manchmal, manchmal nicht, in der Zeile 23
Set BereichM = Sheets("Grafik").Range(Cells(2, 2), Cells(Zn, 3))
die Fehlermeldung Laufzeitfehler'1004': Anwendungs- oder objektdefinierter Fehler.
in der Zeile 28
Range(BereichM).Select
die Fehlermeldung Laufzeitfehler'1004'ie Methode 'Range' für das Objekt'_Global' ist fehlgeschlagen.
Seit mehreren Stunden versuche ich dem Grund für den Fehler auf die Spur zu kommen leider bisher vergeblich.
Ich habe den Eindruck, als wenn der Fehler willkürlich auftritt, kann ich mir aber nicht vorstellen.
Was mache ich falsch
Vielleicht kann mir hier jemand helfen?
Vielen Dank
Ich arbeite mit VBA unter Excel (Office 97 SP1) mit Windows XP.
(Das Programm muß auch unter Office 97 lauffähig sein, da ja nicht jeder gleich bei Erscheinen einer neuen Office-Version diese auch updatet.)
Code:
Sub Grafik()
Dim Dia As ChartObject
Dim BereichM As Range
Dim Maxx As Single
Dim Zn As Integer
n = Worksheets("E").Cells(3, 4)
With Worksheets("Grafik")
j = 1
ActiveSheet.ChartObjects.Delete
' Daten für die Grafik umsortieren
For i = 1 To n
.Cells(j + 1, 1) = i
.Cells(j + 1, 2) = Worksheets("E").Cells(13 + i, 2)
.Cells(j + 1, 3) = Worksheets("E").Cells(13 + i, 3)
.Cells(j + 2, 2) = Worksheets("E").Cells(13 + i, 4)
.Cells(j + 2, 3) = Worksheets("E").Cells(13 + i, 5)
.Cells(j + 3, 2) = ""
.Cells(j + 3, 3) = ""
j = j + 3
Next i
' Grössten Wert suchen der in einer Grafik als grösster Achsenwert verwendet wird
Zn = ActiveSheet.UsedRange.Rows.Count
--> Set BereichM = Sheets("Grafik").Range(Cells(2, 2), Cells(Zn, 3))
Maxx = Application.WorksheetFunction.Max(BereichM)
' MsgBox " Das Maximum ist: " & Maxx
End With
--> Range(BereichM).Select
Set Dia = ActiveSheet.ChartObjects.Add(100, 100, 400, 400)
' Dia.Name = "Positionsplan"
ActiveSheet.ChartObjects("Positionsplan").Activate
ActiveChart.ChartType = xlXYScatterLinesNoMarkers
--> ActiveChart.SetSourceData Source:=Sheets("Grafik").Range(BereichM), PlotBy _
:=xlColumns
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Positionsplan"
End With
.
.
.
.