Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1296to1300
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

bedingtes einfügen von zeilen

bedingtes einfügen von zeilen
13.02.2013 13:51:51
zeilen
https://www.herber.de/bbs/user/83886.xlsx
1. Ich möchte gerne eine bestimmte Anzahl von Zeilen in der Tabelle 2 vor der Zeile 7 einfügen. Die Anzahl der einzufügenden Zeilen ist dabei abhängig von dem Wert in Zelle C3 in Tabelle 1.
2. Außerdem soll dann in der eingefügten Zeile in der Spalte C automatisch der Text BV 1, BV 2, usw. stehen.
3. Abhängig von der Zeilenanzahl soll sich dann noch eine Summenformel dynamisch berechnen. (Summenformel in Zelle D 8 im Bsp.)
Gibt es dafür eine Lösung ohne VBA oder geht das nur mit VBA?
Bin für jeden Tip dankbar.
VG
Klaus

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bedingtes einfügen von zeilen
13.02.2013 14:32:56
zeilen
Hi Namensvertter,
Gibt es dafür eine Lösung ohne VBA
Natürlich! Aktiviere Tabelle1, merke dir die Zahl in C3. Aktiviere jetzt Tabelle2, markiere die Zeile 7. Rechtsclick auf die Markierung und "Zeile einfügen" clicken. Das machst du so oft, wie die Zahl in C3 vorgab. Danach aktualisierst du alle Formeln, und schreibst überall BV1 bis BVx.
Bin für jeden Tip dankbar.
Mein Tip wär dann: mach das in VBA :-)
Anbei mal ein Script, dass nach deinen Vorgaben X Zeilen einfügt und BV1 bis BVx schreibt.
Sub xZeilenRein()
Dim iAnzahlZeilen As Integer
Dim lRowInsert As Long
Dim i As Integer
iAnzahlZeilen = Sheets("Tabelle1").Range("C3").Value
lRowInsert = 7 'ab Zeile 7
With Sheets("Tabelle2")
.Range("A" & lRowInsert).Resize(iAnzahlZeilen, 1).EntireRow.Insert
For i = 1 To iAnzahlZeilen
.Range("C" & i + lRowInsert - 1).Value = "BV" & i
Next i
End With
End Sub
Deinen Punkt 3 habe ich nicht verstanden. Was soll in D8 stehen? D8 bevor oder nachdem die Zeilen eingefügt wurden?
Grüße,
Klaus M.vdT.

Anzeige
AW: bedingtes einfügen von zeilen
13.02.2013 15:45:57
zeilen
Hi Klaus,
vielen Dank für die Hilfe. Ich werde dein Script mal ausprobieren.
Wegen Punkt 3:
In der Formel in Zelle D8 soll von dem Wert in D5 die Summe der Werte der eingefügten Zeilen in den Zellen D7, D8, usw. abgezogen werden. D8 verschiebt sich natürlich nach unten je nachdem, ob überhaupt Zeilen eingefügt werden, und falls ja, wie viele. Schwierig wird es wahrscheinlich wenn überhaupt keine Zeile eingefügt wird und dann die Summe D8 = D5 ist.
Ich hoffe, es wird jetzt etwas klarer, was ich meine.
VG
Klaus

AW: bedingtes einfügen von zeilen
13.02.2013 15:58:24
zeilen
Klaus,
also: Wenn du 5 Zeilen einfügst, dann steht in
c6: Unter-KST
C7-C11 je BV1,BV2 usw
C12: Haupt-KST
Die Formel in ehemals D8, das jetzt D13 ist, soll was machen?
100.000 minus SUMME(C7:C11) rechnen? Dann so:
Sub xZeilenRein()
Dim iAnzahlZeilen As Integer
Dim lRowInsert As Long
Dim i As Integer
iAnzahlZeilen = Sheets("Tabelle1").Range("C3").Value
If iAnzahlZeilen = 0 Then GoTo hell
lRowInsert = 7 'ab Zeile 7
With Sheets("Tabelle2")
.Range("A" & lRowInsert).Resize(iAnzahlZeilen, 1).EntireRow.Insert
For i = 1 To iAnzahlZeilen
.Range("C" & i + lRowInsert - 1).Value = "BV" & i
Next i
.Range("D" & 8 + iAnzahlZeilen).FormulaR1C1 = "=R5C4-SUM(R7C:R[-2]C)"
End With
GoTo heaven
hell:
MsgBox ("Kann nicht null Zeilen einfügen!")
With Sheets("Tabelle2")
.range("D8").value = range("D5").value
End With
heaven:
End Sub
Ergibt natürlich immer 100.000, da ja in den Feldern BV1 bis BVx nichts steht, aber ich nehme an da kommen später noch Zahlen rein.
Grüße,
Klaus M.vdT.

Anzeige
AW: bedingtes einfügen von zeilen
13.02.2013 16:13:37
zeilen
Du hast es genau richtig vermutet. Funktioniert auch prima. Vielen Dank!
Das einzige Problem ist, dass das Script nicht funktioniert wenn ich keine Zeilen einfügen möchte, was auch der Fall sein kann.
VG
Klaus

on error
14.02.2013 08:15:20
Klaus
Hallo Klaus,
schreibe mal als erste Zeile den Code on error goto hell rein, dann sollte dieser Fehler abgefangen sein.
Sub xZeilenRein()
on error goto hell
Dim iAnzahlZeilen As Integer
Dim lRowInsert As Long
Dim i As Integer
[...]
Grüße,
Klaus M.vdT.

AW: on error
14.02.2013 11:27:12
Klaus
Bekomme immer noch die Meldung, dass man nicht Null Zeilen einfügen kann. Aber das ist nicht so tragisch.
Auf jeden Fall vielen Dank für deine Hilfe.
VG
Klaus

Anzeige
AW: on error
14.02.2013 11:36:42
Klaus
Hallo Klaus,
Bekomme immer noch die Meldung, dass man nicht Null Zeilen einfügen kann
das geht ja auch nicht!
Wenn du die Meldung nicht haben willst, kommentiere die Zeile
MsgBox ("Kann nicht null Zeilen einfügen!")
unten im Code aus oder lösche Sie.
(ich finds nicht gut wenn ein Makro bei Fehlerabbruch einfach gar nichts sichtbares macht - ich bin mir dann immer nicht sicher, ob ich den Button wirklich gedrückt habe. Daher die Messagebox bei Fehlerabbruch).
Grüße,
Klaus M.vdT.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige