Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Wenn Tabelle voll automatisch Zeile einfügen

Wenn Tabelle voll automatisch Zeile einfügen
14.07.2014 13:51:30
Werner
Hallo Leute, habe schon durch längeres Suchen im Forum ähnliche Probleme gefunden, aber noch keine passende Lösung. Folgendes:
Ich habe eine Tabelle mit 12 Blättern (Jan. - Dez.). Das ganze ist eine Art Buchführung. Ab Zeile 33 befinden sich Formeln für Summen und Zwischenergebnissen. Ich bräuchte jetzt folgende Funktion: Wenn in Zelle G32 ein Wert (Datum) eingetragen wird soll automatisch darunter eine neue Zeile eingefügt werden, welche genauso formatiert ist, wie die Zeilen darüber. Dasselbe soll sich dann in G33 (usw.) wiederholen.
Ich denke, die Lösung dafür ist mit Sicherheit nicht so schwierig, nur leider reichen meine VBA-Anfängerkenntnisse dafür noch nicht aus.
Wäre super, wenn jemand einen Tip oder eine Lösung für mich hätte!

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Wenn Tabelle voll automatisch Zeile einfügen
14.07.2014 15:59:26
Arthur
Hallo Werner.
Wenn du die letzte Zelle identifizieren kannst, bspw. per benanntem Bereich, und der Inhalt auf ein Datum geprüft ist, dann ist das kopieren eine Formsache.
Selection.EntireRow.Copy
Selection.EntireRow.Insert Shift:=xlDown
Selection.Worksheet.Range(Selection.Row + 1 & ":" & Selection.Row + 1).ClearContents
Geht natürlich auch über das selektive Einfügen von Formaten, Formeln, ...
Gruß, Arthur.

Anzeige
AW: Wenn Tabelle voll automatisch Zeile einfügen
14.07.2014 16:27:01
Werner
Hallo Arthur,
vielen Dank für die schnelle Antwort.
Habe aber soeben eine eigene Lösung gefunden.
Spalte A ist fortlaufende Nummer, die vor den Summenzeilen aufhört. Ich weiß, dass einige Select unnötig sind und es etwas umständlich ist. Aber da ich blutiger VBA-Anfänger bin, bin ich ganz zufrieden mit der Lösung. Vor allem da sie funktioniert.
Sub Zeilen_einfügen()
' Zeilen_einfügen Makro
' Einfügen von formatierten Zeilen
lr = Cells(Rows.Count, 1).End(xlUp).Row
Cells(lr, 1).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.EntireRow.Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.Offset(0, 8).Range("A2").Select
Selection.Copy
ActiveCell.Offset(-1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(0, -7).Select
ActiveCell.FormulaR1C1 = "=R[-1]C+1"
End Sub

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Tabelle automatisch um eine Zeile erweitern in Excel


Schritt-für-Schritt-Anleitung

Um in Excel automatisch eine neue Zeile einzufügen, wenn ein Datum in Zelle G32 eingegeben wird, kannst Du die folgende VBA-Lösung verwenden:

  1. Öffne das Excel-Dokument an dem gewünschten Blatt.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  4. Kopiere den folgenden Code in das Modul:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, Me.Range("G32")) Is Nothing Then
           If IsDate(Target.Value) Then
               ' Neue Zeile einfügen
               Target.Offset(1, 0).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
           End If
       End If
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Teste die Funktion, indem Du ein Datum in Zelle G32 eingibst. Es sollte automatisch eine neue Zeile darunter eingefügt werden.

Diese Methode ermöglicht es Dir, in Deiner Excel-Tabelle neue Zeilen automatisch einzufügen, wenn bestimmte Bedingungen erfüllt sind.


Häufige Fehler und Lösungen

  • Problem: Die neue Zeile wird nicht eingefügt.
    Lösung: Stelle sicher, dass das Makro aktiviert ist und die Sicherheitsstufe in Excel so eingestellt ist, dass Makros ausgeführt werden können.

  • Problem: Das eingefügte Format ist nicht korrekt.
    Lösung: Überprüfe, ob die CopyOrigin-Eigenschaft korrekt verwendet wird, um die Formatierung zu erhalten.

  • Problem: Das Makro wird nicht ausgeführt.
    Lösung: Achte darauf, dass Du die richtige Zelle (G32) änderst, um das Event auszulösen.


Alternative Methoden

Wenn Du nicht mit VBA arbeiten möchtest, kannst Du auch die Funktion "Tabelle" in Excel verwenden:

  1. Wandle Deine Daten in eine Excel-Tabelle um, indem Du die Daten auswählst und STRG + T drückst.
  2. Excel fügt automatisch neue Zeilen hinzu, wenn Du Daten in die letzte Zeile der Tabelle eingibst.

Diese Methode ist besonders nützlich, wenn Du mit großen Datensätzen arbeitest und eine dynamische Tabelle benötigst.


Praktische Beispiele

Wenn Du eine Buchführung in Excel führst und Werte nach Monaten eingibst, kannst Du den oben beschriebenen VBA-Code anpassen, um automatisch neue Zeilen für jeden Monat zu erstellen.

Wenn Du beispielsweise in G32 einen Wert eingibst und eine neue Zeile für den nächsten Monat benötigst, könnte der Code wie folgt aussehen:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("G32")) Is Nothing Then
        If IsDate(Target.Value) Then
            Target.Offset(1, 0).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            ' Weitere Anpassungen können hier hinzugefügt werden
        End If
    End If
End Sub

Tipps für Profis

  • Verwende benannte Bereiche, um die Lesbarkeit und Wartbarkeit Deines Codes zu verbessern.
  • Experimentiere mit weiteren Excel-Funktionen, um die Automatisierung zu erweitern, wie z.B. Worksheet_BeforeDoubleClick für andere Trigger.
  • Nutze die Möglichkeit, mehrere Zeilen gleichzeitig einzufügen, indem Du den Offset entsprechend anpasst.

FAQ: Häufige Fragen

1. Wie kann ich die Funktion für mehrere Zellen gleichzeitig aktivieren?
Du kannst die Intersect-Funktion anpassen, um mehrere Zellen zu überwachen, indem Du z.B. Me.Range("G32:G50") verwendest.

2. Funktioniert das auch in anderen Excel-Versionen?
Ja, die beschriebenen Methoden funktionieren in den meisten modernen Excel-Versionen, die VBA unterstützen (Excel 2010 und neuer).

3. Kann ich das Makro auch für andere Spalten verwenden?
Ja, Du kannst die Zellenreferenzen im Code entsprechend anpassen, um das Makro für andere Spalten zu verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige