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

ListObject Zeile hinzufügen inkl. Formel

Forumthread: ListObject Zeile hinzufügen inkl. Formel

ListObject Zeile hinzufügen inkl. Formel
19.05.2020 11:02:21
Dennis
Guten Tag liebes Forum,
ich würde gerne zwei verschiedene ListObjects per Makro-Button wöchentlich um eine Zeile erweitern und die enthaltenen Formeln beibehalten.
Aktuell füge ich bei beiden eine neue Zeile hinzu, allerdings ohne Inhalt (Formel).
Hinzu kommt, dass ich bei einem ListObject gerne die Formeln in die neue Zeile kopieren möchte, allerdings aus der "alten" (darüberstehenden) Zeile die Werte festhalten möchte.
Vielen Dank im Voraus!
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListObject Zeile hinzufügen inkl. Formel
20.05.2020 08:14:27
hary
Moin
Listobject erweitern geht so.
Name des Blattes und der eingefuegten Tabelle musst du anpassen.
Worksheets("Tabelle1").ListObjects("Tabelle1").ListRows.Add

gruss hary
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zeile in ListObject hinzufügen und Formeln beibehalten


Schritt-für-Schritt-Anleitung

Um eine Zeile in ein ListObject in Excel hinzuzufügen und dabei die vorhandenen Formeln beizubehalten, kannst Du den folgenden VBA-Code verwenden. Dieser Schritt-für-Schritt-Guide zeigt Dir, wie Du dies umsetzen kannst:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu, indem Du im Menü auf "Einfügen" > "Modul" klickst.

  3. Kopiere den folgenden Code in das Modul:

    Sub NeueZeileHinzufuegen()
        Dim ws As Worksheet
        Set ws = Worksheets("Tabelle1") ' Passe den Namen des Blattes an
        Dim lo As ListObject
        Set lo = ws.ListObjects("Tabelle1") ' Passe den Namen der Tabelle an
    
        ' Neue Zeile hinzufügen
        lo.ListRows.Add
    
        ' Werte und Formeln kopieren
        Dim letzteZeile As ListRow
        Set letzteZeile = lo.ListRows(lo.ListRows.Count)
    
        letzteZeile.Range.Formula = lo.ListRows(lo.ListRows.Count - 1).Range.Formula
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Füge einen Button hinzu, um das Makro auszuführen. Klicke dazu auf "Entwicklertools" > "Einfügen" > "Button" und weise das Makro NeueZeileHinzufuegen zu.

Jetzt kannst Du den Button klicken, um eine neue Zeile in Deinem ListObject hinzuzufügen und die Formeln zu kopieren.


Häufige Fehler und Lösungen

  • Fehler: "Ein Fehler ist aufgetreten"

    • Stelle sicher, dass der Tabellenname und der Blattname korrekt sind. Überprüfe die Schreibweise.
  • Fehler: Formeln werden nicht kopiert

    • Achte darauf, dass Du tatsächlich eine Zeile hinzugefügt hast, bevor Du versuchst, die Formeln zu kopieren. Der Code muss sicherstellen, dass die vorherige Zeile existiert.

Alternative Methoden

Wenn Du keine VBA-Makros verwenden möchtest, kannst Du auch die folgende Methode in Excel nutzen:

  1. Füge manuell eine neue Zeile in Deinem ListObject hinzu.
  2. Klicke auf die Zelle mit der Formel, die Du kopieren möchtest, und ziehe den Ausfüllkästchen (kleines Quadrat in der unteren rechten Ecke der Zelle) nach unten, um die Formel in die neue Zeile zu kopieren.

Diese Methode ist jedoch zeitaufwändiger, besonders wenn Du regelmäßig neue Zeilen hinzufügen musst.


Praktische Beispiele

Angenommen, Du hast ein ListObject mit Verkaufszahlen und möchtest jede Woche eine neue Zeile für die aktuellen Verkaufszahlen hinzufügen. Hier ist ein Beispiel, wie Du dies automatisieren könntest:

  1. Verwende den oben beschriebenen VBA-Code, um eine neue Zeile hinzuzufügen.
  2. Setze eine Formel in der ersten Zeile, um den Gesamtumsatz zu berechnen, z. B. =SUMME(B2:B10).
  3. Bei jeder Ausführung des Makros wird die Formel in die neue Zeile kopiert, sodass Du immer aktuelle Daten hast.

Tipps für Profis

  • Verwende die With-Anweisung in VBA, um den Code zu vereinfachen:

    With ws.ListObjects("Tabelle1")
        .ListRows.Add
        .ListRows(.ListRows.Count).Range.Formula = .ListRows(.ListRows.Count - 1).Range.Formula
    End With
  • Überlege, das Makro so zu gestalten, dass es auch die Formatierung der vorherigen Zeile übernimmt.


FAQ: Häufige Fragen

1. Wie oft kann ich das Makro ausführen?
Du kannst das Makro so oft ausführen, wie Du möchtest, solange Dein ListObject nicht die maximale Zeilenanzahl erreicht hat.

2. Muss ich VBA aktivieren, um das Makro auszuführen?
Ja, Du musst sicherstellen, dass Makros in Deinen Excel-Einstellungen aktiviert sind, um den VBA-Code auszuführen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige