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

Forumthread: VBA - neue Zeile in dynamischer Tabelle einfügen

VBA - neue Zeile in dynamischer Tabelle einfügen
06.09.2016 15:21:32
Berndt
Hallo Freunde,
folgendes Problem:
ich benötige einen Code der prüft, wo sich die letzte Zeile befindet (beginnend in Zelle B7 abwärts).
nachdem die Letzte Zeile erkannt wurde, soll das Makro unter dieser eine neue Zeile einfügen (von Spalte B bis H)
Kann mir wer helfen?
Danke im voraus.
Steven Berndt
Anzeige

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

Betreff
Datum
Anwender
Anzeige
VBA - neue Zeile in dynamischer Tabelle einfügen
06.09.2016 15:31:10
baschti007
Hey Ho Soo ?
Gruß Basti

Sub Super()
With ActiveSheet
last = .Cells(Rows.Count, 2).End(xlUp).Row + 1
.Range("B" & last & ":H" & last).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End With
End Sub

AW: VBA - neue Zeile in dynamischer Tabelle einfügen
06.09.2016 15:59:38
Luschi
Hallo Berndt,
hier mal 1 Beispiel, wo die benötigten Werte aus dem ListObject (formatierte Tabelle) gelesen werden und die Größe um 1 Zeile zu erhöhen:
https://www.herber.de/bbs/user/108053.xlsm
Gruß von Luschi
aus klein-Paris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Neue Zeile in dynamischer Tabelle mit VBA einfügen


Schritt-für-Schritt-Anleitung

Um eine neue Zeile in einer dynamischen Tabelle mit Excel VBA einzufügen, folge diesen Schritten:

  1. Öffne den VBA-Editor.

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu.

    • Klicke mit der rechten Maustaste auf "VBAProject (deineDatei.xlsm)" und wähle "Einfügen" > "Modul".
  3. Gib den folgenden Code ein:

    Sub NeueZeileEinfügen()
       With ActiveSheet
           last = .Cells(Rows.Count, 2).End(xlUp).Row + 1
           .Range("B" & last & ":H" & last).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
       End With
    End Sub
  4. Schließe den VBA-Editor.

    • Speichere deine Änderungen und schließe den Editor.
  5. Führe das Makro aus.

    • Drücke ALT + F8, wähle NeueZeileEinfügen und klicke auf "Ausführen".

Dieser Code sucht die letzte Zeile in Spalte B und fügt darunter eine neue Zeile ein, wodurch die Daten in den Spalten B bis H verschoben werden.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs."

    • Lösung: Stelle sicher, dass der Blattname korrekt ist und dass du das Makro auf dem richtigen Blatt ausführst.
  • Fehler: "Das Arbeitsblatt ist schreibgeschützt."

    • Lösung: Überprüfe die Berechtigungen des Arbeitsblatts und entferne den Schreibschutz, falls nötig.

Alternative Methoden

Wenn Du keine VBA verwenden möchtest, kannst Du auch die Funktion "Tabelle" in Excel nutzen. Hierbei kannst Du einfach eine neue Zeile hinzufügen, indem Du mit der rechten Maustaste auf die Zeilennummer klickst und "Zeile einfügen" wählst. Diese Methode ist jedoch nicht so dynamisch wie die Verwendung eines Makros.


Praktische Beispiele

  1. Beispiel für das Einfügen einer Zeile am Ende einer Liste:

    • Wenn Du eine Tabelle hast, die ständig aktualisiert wird, kannst Du den Code anpassen, um immer am Ende der Liste eine neue Zeile einzufügen:
    Sub NeueZeileAmEndeEinfügen()
       With ActiveSheet.ListObjects("DeineTabelle")
           last = .ListRows.Count + 1
           .ListRows.Add alwaysInsert:=True
       End With
    End Sub
  2. Verwendung eines Excel Makros zum Einfügen einer Zeile:

    • Du kannst den Code auch so anpassen, dass er auf bestimmte Bedingungen reagiert, z.B. nur eine neue Zeile einfügt, wenn ein bestimmter Wert erreicht wird.

Tipps für Profis

  • Verwende Variablen für die Spaltennummern: Wenn Du den Code wiederverwendest, ist es hilfreich, die Spaltennummern in Variablen zu speichern.

    Dim spalte As Integer
    spalte = 2 ' Spalte B
    last = .Cells(Rows.Count, spalte).End(xlUp).Row + 1
  • Fehlerbehandlung einfügen: Füge Fehlerbehandlungsroutinen hinzu, um das Makro robuster zu machen.

    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0

FAQ: Häufige Fragen

1. Wie kann ich die Zeile in einer bestimmten Spalte einfügen? Um eine neue Zeile in einer bestimmten Spalte einzufügen, ändere die Spaltennummer in der Zeile Cells(Rows.Count, 2) auf die gewünschte Spalte.

2. Funktioniert das auch in Excel Online? Nein, VBA-Makros funktionieren nur in der Desktop-Version von Excel. Excel Online unterstützt keine VBA-Skripte.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige