um das Problem zu beschreiben, muss ich etwas ausholen und die Arbeitsmappe erläutern.
Vorgeplänkel
Die Arbeismappe besteht aus zwei Tabellenblättern, "A" und "B".
Im Tabellenblatt "A" wurde der Bereich C2:H10 als "Bereich_A" benannt. Im Tabellenblatt "B" wurde exakt der gleiche Bereich als "Bereich_B" benannt.
Des Weiteren gibt es im Tabellenblatt B noch eine weitere Tabelle im Bereich C18:H30. Diese ist mit beliebigen Zahlenwerten gefüllt. Eine Bereichsbenennung ist nicht erfolgt. In den Zellen des Bereiches "Bereich_B" ist jeweils eine Formel hinterlegt, die auf die untere Tabelle verweist. Z.B. ist in der Zelle C2 die Formel =C18 eingetragen. Quasi spiegeln die Zellen aus dem Bereich "Bereich_B" Auszüge aus der Tabelle C18:H30 wider.
Der Bereich "Bereich_A" im Tabellenblatt A spiegelt exakt den Bereich "Bereich_B" wider.
Warum, Wieso, Weshalb spielt keine Rolle.
Unter Zuhilfenahme eines Steuerelementes soll nun sowohl der Bereich_A als auch der Bereich_B um jeweils eine Zeile nach unten vergrößert werden. Dabei sollen die Formeln nach untenhin angepasst werden.
Dazu dient mir folgender Code:
Sub einfgZeile()
On Error GoTo Stoppen
Dim Sheet As Worksheet
For Each Sheet In Sheets
Debug.Print Sheet.Name
Dim Bereich As Range
Set Bereich = Sheet.Range("Bereich_" & Sheet.Name)
Sheet.Activate
Zeileeinfügen Bereich
Dim LetzteZeile2 As Long
Next Sheet
Stoppen:
Sheets("A").Select
End Sub
Sub Zeileeinfügen(Rechnungen As Range)
Dim LetzteRechnung As Range
Set LetzteRechnung = Rechnungen.Rows(Rechnungen.Rows.Count)
LetzteRechnung.Select
Selection.Copy
Selection.Insert Shift:=xlShiftDown
Dim CurrentRange As Range
Set CurrentRange = Selection.Offset(1)
Dim Zelle As Range
For Each Zelle In CurrentRange
If Not Left(Zelle.Formula, 1) = "=" Then
Zelle.Formula = ""
End If
Next Zelle
CurrentRange.Select
End Sub
Jetzt zu dem Kernproblem. (Endlich)
Löse ich das Makro über das Steuerelement aus, wird wie gesagt in beiden Tabellenblättern der jeweilige Bereich um eine Zeile erweitert. Aber die Formeln in den Zellen werden nicht richtig nach unten kopiert. So kommt es immer vor, dass der Zellverweis in den Formeln der vorletzten und vorvorletzten Zeile gleich bleibt! Z.b. steht in Zelle C9 =C22 (korrekt) und in Zelle C10 auch =C22, obwohl =C23 hätten drin stehen müssen. In der letzten Zeile des Bereiches (in diesem Fall C11) steht dann =C23 statt =C24. Alle Zeilen oberhalb der Vorvorletzten sind korrekt.
Ideen, woran es liegen könnte? Möchte nicht permanent per Hand die Formeln nach unten kopieren, nachdem ich den Makro genutzt habe.
Danke.