Mit folgenden Problem bin ich konfrontiert:
In einer Excelmappe habe ich mehrere umfangreiche Datenblätter.
Diese bestehen aus vielen untereinander angeordneten Bereichen mit jeweils einer bestimmten Anzahl von Spalten und Zeilen (kann sich erhöhen).
Die erste Spalte (A) des Bereiches ist eine verbundene Zelle mit einem Datum.
Die nachfolgenden Spalten enthalten Felder für Dateneingabe und Formeln, wobei die letzte Zeile des Bereiches (Spalte B bis AC) eine Auswertezeile (Summen, Mittelwerte) ist.
Die Datentabelle wächst ständig in dem ich eine Kopie des vorhergehenden Bereiches an diesen unmittelbar anhänge (Kopieren + Kopierte Zellen einfügen).
Bei einer Dateneingabe sollen die Formeln in der jeweiligen Zeile sowie in der Auswertezeile am Ende des Bereiches sowie eventuell benachbarte Zeilen aktualisiert werden.
Beim Kopieren des Bereiches braucht keine Aktualisierung erfolgen, dafür aber beim Löschen mehrerer markierter Datenfelder innerhalb des Bereiches.
Zur Zeit funktioniert die Aktualisierung bei Dateneingabe und das Löschen.
Beim Einfügen eines neuen Bereiches kommt eine Fehlermeldung. Wenn ich nach Beendigung der Fehlermeldung Daten eingeben möchte stürzt Excel ab.
VBA-Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Verbund_ersteZeile As Integer
Dim Verbund_letzteZeile As Integer
Dim Verbund_Zeile As Integer
ActiveWorkbook.Worksheets("Export_K4_FS").Select
Application.EnableEvents = False
If Range("A" & ActiveCell.Row).MergeCells = True Then
Verbund_ersteZeile = ActiveSheet.Range("A" & ActiveCell.Row).MergeArea.Cells(1, 1).Row
Verbund_letzteZeile = Verbund_ersteZeile + ActiveSheet.Range("A" & ActiveCell.Row).MergeArea. _
Cells(1, 1).MergeArea.Count - 1
'bei folgender Zeile Fehlermeldung (Laufzeitfehler -2147417... Methode Calculate für Range- _
Object fehlgeschlagen)
ActiveSheet.Range(Verbund_ersteZeile & ":" & Verbund_letzteZeile).Calculate
Else
Target.Range(ActiveCell.Row & ":" & ActiveCell.Row).Calculate
End If
Application.EnableEvents = True
End Sub
Für die Hilfe im Voraus schon vielen Dank!