Laufzeitfehler '5'! Ich bitte um Hilfe

Hallo liebe Programmiergemeinde.
Ich habe auf Excel-Basis ein Programm entworfen das ich mittels VBA fülle.
Ich kann je nach Bedarf ein Rechenblock hinzufügen oder auch wieder entfernen. Ein Rechenblock besitzt 2 Spalten und geht von Zeile 4 bis 258. Ein neu eingefügter Rechenblock wird dann mittels VBA-Makro mit Formeln gefüllt. Das funktioniert soweit auch zu 100%.

Jetzt tritt allerdings folgendes Problem auf:
Wenn ich ab Spalte Z einen neuen Rechenblock hinzufüge, also in Spalte AA und AB einfüge bekomme ich den „Laufzeitfehler ‚5‘ - Ungültiger Prozeduraufruf oder ungültiges Argument“. Das interessante an dem Fehler ist zusätzlich noch, dass der Fehler erst ab Zeile 100 auftritt. Das bedeutet, für alle Formeln die ich von Zeile 4-99 in den Rechenblock schreibe ist alles super. Sobald ich die allerdings gleiche Formel ab Zeile 100 in eine Zelle schreibe tritt der oben beschriebene Laufzeitfehler auf. Der Fehler tritt also in Kombination ab Spalte AA und Zeile > 99 auf.

Woran kann das liegen? Ich bin echt ratlos.

Ich hoffe auf eure Hilfe.
Stefan

Fehler gefunden :smile:
Der Fehler war in einem übergeordneten Worksheet-Code
ich muss in der If-Abfrage die Zahl 6 auf 8 abändern und es läuft.

If Len(Target.Address) > 8 Then
adr = Left(Target.Address, InStr(1, Target.Address, „:“, vbTextCompare) - 1)
Else
adr = Target.Address
End If

If Len(Target.Address) > 8 Then
adr = Left(Target.Address, InStr(1, Target.Address, „:“, vbTextCompare) - 1)
Else
adr = Target.Address
End If

If Not Range(adr).Comment Is Nothing Then

If Len(Target.Address) > 8 Then
adr = Left(Target.Address, InStr(1, Target.Address, „:“,
vbTextCompare) - 1)
Else
adr = Target.Address
End If

Hallo Stefan,

wenn du die erste Zelladresse von Target haben willst:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim T() As String
T = Split(Target.Address, „:“)
adr = T(0)
MsgBox adr
End Sub

Gruß
Reinhard

If Len(Target.Address) > 8 Then
adr = Left(Target.Address, InStr(1, Target.Address, „:“,
vbTextCompare) - 1)
Else
adr = Target.Address
End If

If Not Range(adr).Comment Is Nothing Then

Hallo Stefan,

die 1. Zelle eines Zellbereichs kann man in Excel auch direkt bestimmen.

adr = Range("C3:H100").Range("A1").Address
' oder wie in deinem Fall mit Target
adr = Target.Range("A1").Address

Du kannst dir also eigentlich die Adress-Bestimmung sparen indem du direkt die Zelle ansprichst, es sei den du benötigst die Zelladresse noch für andere Zwecke.

If Not Target.Range("A1").Comment Is Nothing Then
'....

Gruß
Franz