Herbers Excel-Forum - das Archiv

Zeilen einfügen und löschen per Makro

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
ListBox
Bild

Betrifft: Zeilen einfügen und löschen per Makro
von: Thomas Landis

Geschrieben am: 09.01.2007 08:58:10
habe folgendes problem:
Ein Ausgabefeld z.B. A5 soll die Anzahl der Zeilen zwischen 2 "festen Zeilen" bestimmen. In diesen "festen Zeilen" die direkt unter einander stehen
z.B. A7 und A8 steht ein text. Wenn in dem Ausgabefeld z.B. die Ziffer 2 erscheint sollen zwei Zeilen zwischen A7 und A8 eingefügt werden. Siehe Beispiel:
Zeile 5 "Ausgabefeld A5" 2
Zeile 6
Zeile 7 "Text"
"Neue Zeile 8"
"Neue Zeile 9"
Zeile 10 "Text" (ursprünglich Zeile 8)
Wenn in dem Ausgabefenster eine 1 erscheint soll nur eine Zeile zwischen den Textzeilen erscheinen! Ist das möglich mit einem Makro?
Bild

Betrifft: AW: Zeilen einfügen und löschen per Makro
von: Rudi Maintaire
Geschrieben am: 09.01.2007 09:11:31
Hallo,
woher kommt der Wert in A5? Eingabe von Hand?
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Bild

Betrifft: AW: Zeilen einfügen und löschen per Makro
von: Thomas
Geschrieben am: 09.01.2007 11:19:21
der wert in A5 wird nicht manuell eingegeben. Dieser Wert erscheint automatisch wenn man in einem Listenfenster eine bestimmte Alternative wählt!
Bild

Betrifft: AW: Zeilen einfügen und löschen per Makro
von: Rudi Maintaire

Geschrieben am: 09.01.2007 11:41:46
Hallo,
in den Code der Tabelle:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$5" Then
Application.EnableEvents = False
Range(Rows(8), Rows(8 + Range("A5").Value - 1)).Insert
Application.EnableEvents = True
End If
End Sub

Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Bild

Betrifft: AW: Zeilen einfügen und löschen per Makro
von: Thomas

Geschrieben am: 09.01.2007 12:47:59
Hallo Rudi!
vielen dank für deine Hilfe. Habe es ausprobiert und der Makro fügt auch Zellen ein, jedoch nur wenn ich den Wert manuell eingebe. Wenn sich der Wert durch Wahl in dem vom
mir genannten Listenfenster ändert passiert nichts. Eine anderes Problem ist dass der Makro zwar Zeilen einfügt jedoch nicht wieder reduziert, d.h. es sollen immer nur so vielen Zeilen zwischen den beiden "festen Textzeilen" liegen wie ich im Ausgabefenster
angebe.
z.B. Ziffer 2 im Ausgabefeld
Zeile 8 (Text)
eingefügte Zeile wenn im Ausgabefenster die Ziffer 2 erscheint
eingefügte Zeile wenn im Ausgabefenster die Ziffer 2 erscheint
Zeile 11 vorher "9" (Text)
dananch erscheint im Ausgabefeld die Ziffer 1. Dann müsste das so aussehen:
Zeile 8 (Text)
eingefügte Zeile
Zeile 10, vorher "11" bzw. ursprünglich 9.
Ist das zu machen?
Bild

Betrifft: AW: Zeilen einfügen und löschen per Makro
von: Rudi Maintaire

Geschrieben am: 09.01.2007 14:20:36
Hallo,
Dim blnClick As Boolean
Private Sub ListBox1_click()
Dim rng1 As Range, rng2 As Range, iRows
Const strText1 = "erster Text"
Const strText2 = "zweiter Text"
If blnClick = False Then
blnClick = True
Set rng1 = Range("A:A").Find(strText1, Range("A1"), , xlWhole, xlByRows, xlNext)
If rng1 Is Nothing Then
blnClick = False
Exit Sub
End If
Set rng2 = Range("A:A").Find(strText2, rng1, , xlWhole, xlByRows, xlNext)
If rng2 Is Nothing Then
blnClick = False
Exit Sub
End If
If rng2.Address <> rng1.Offset(1, 0).Address Then
Range(rng1.Offset(1, 0), rng2.Offset(-1, 0)).EntireRow.Delete
End If
If ListBox1 > 0 Then Range(rng2, rng1.Offset(ListBox1, 0)).EntireRow.Insert
blnClick = False
End If
End Sub

Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Bild

Betrifft: AW: Zeilen einfügen und löschen per Makro
von: Thomas
Geschrieben am: 09.01.2007 20:01:12
Hallo!
Vielen Dank!
das klappt!
Gruss
Thomas
 Bild
Excel-Beispiele zum Thema "Zeilen einfügen und löschen per Makro"
Zeilenhöhe in cm festlegen Summe gefilterter Zeilen
Zeilenumbruch Leere Zeilen löschen
Spalten/Zeilen aus- und einblenden Zeilenumbruch in Formel erzwingen
Zeilen und Spalten über ein Drehfeld ein- und ausblenden Alle Kopf-/Fußzeilen-Festlegungen löschen
Fußzeilen beim Öffnen eintragen Zellinhalte zeilenweise sortieren