Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1328to1332
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellen einfügen in einem benannten Bereich

Zellen einfügen in einem benannten Bereich
20.09.2013 12:55:03
Avalon
Hallo zusammen,
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.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen einfügen in einem benannten Bereich
20.09.2013 13:48:24
Rudi
Hallo,
ist doch klar.
Wenn du einen Bereich kopierst und einfügst, rutscht er nach unten. Die Formeln bleiben erhalten.
Möchte nicht permanent per Hand die Formeln nach unten kopieren
Kann man auch per Code machen.
Sub Zeileeinfuegen(Rechnungen As Range)
Dim LetzteRechnung As Range
Application.ScreenUpdating = False
With Rechnungen
Set LetzteRechnung = .Rows(.Rows.Count)
With LetzteRechnung
.Copy
.Insert Shift:=xlShiftDown
End With
.Formula = Rechnungen.Rows(1).Formula
End With
Application.CutCopyMode = False
End Sub

Gruß
Rudi

Anzeige
AW: Zellen einfügen in einem benannten Bereich
20.09.2013 14:34:32
Avalon
Erst einmal vielen Dank Rudi.
Aber jetzt wird´s kurios.
Habe Deinen angepassten Code für "Zeileeinfügen" übernommen. Im Tabellenblatt "B" funktioniert es einwandfrei.
Im Tabellenblatt "A" haut es nicht hin.
In der vormals letzte Zeile ändert sich der Verweis in der jeweiligen Formel um eine Zeile (aus =B!C10 wird =B!C11). In der neu hinzugefügte Zeile steht dann =B!C12 statt B!C11. In keiner anderen Zeile in dem Bereich wird auf die Zelle B!C10 verwiesen.
und nun?

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige