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

Forumthread: Per VBA Formel in letzte Zeile (+1) eintragen

Per VBA Formel in letzte Zeile (+1) eintragen
Marten
Hallo liebe Herber-Welt,
ich konnte schon oft Lösungen in diesem Forum finden, nun muss ich aber einen eigenen Beitrag schreiben, da ich nicht weiß wie und wo ich danach gucken sollte... :)
Da ich an meinem Arbeits-PC nicht über Admin-Rechte verfüge, kann ich leider kein Jeanie benutzen. Versuche daher, mein Anliegen mal so zu beschreiben.
Also ich habe eine Tabelle, in der ich immer bestimmte Dateien einlese. Die Anzahl der Spalten bleibt gleich (einschließlich Spalte R), die Anzahl der Zeilen variiert.
Ich habe bereits eine Formel, die mir den relevanten Bereich markiert:
LetzteZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Range("D" & LetzteZeile + 1 & ":R" & LetzteZeile + 1).Select

Nun bräuchte ich eine variable Formel (á la =SUMME(ZÄHLENWENN(D2:D31;{"Kriterium 1";"Kriterium 2"}))
wobei "D31" ja eigentlich eine Variable sein sollte. Geht sowas? Kann mir hier jemand helfen?
Schon mal vielen Dank im Voraus.
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Per VBA Formel in letzte Zeile (+1) eintragen
18.07.2011 11:35:48
Rudi
Hallo,
1. ist Select überflüssig.
Cells(LetzteZeile, 4).FormulaR1C1= "=Sum(CountIf(R2C:R[-1],{""Krit1"",""Krit2""}))"
Gruß
Rudi
AW: Per VBA Formel in letzte Zeile (+1) eintragen
18.07.2011 11:46:15
Marten
Hallo Rudi,
danke für die schnelle Hilfe. Aber das funktioniert irgendwie nicht. Wenn ich das Makro ausführe steht in der Zelle die Formel:
=SUMME(ZÄHLENWENN(D$2:30:30;{"Krit 1"."Krit 2"}))
Eigentlich sollte er ja in "D2" bis "D und letzte Zeile" suchen.
Gruß
Marten
Anzeige
AW: Per VBA Formel in letzte Zeile (+1) eintragen
18.07.2011 11:55:06
Rudi
Hallo,
da reiche ich ein C nach.
Cells(LetzteZeile, 4).FormulaR1C1= "=Sum(CountIf(R2C:R[-1]C,{""Krit1"",""Krit2""}))"
Gruß
Rudi
AW: Per VBA Formel in letzte Zeile (+1) eintragen
18.07.2011 12:51:43
Marten
Klappt. Super. Danke!!!
;

Forumthreads zu verwandten Themen

Anzeige
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

Per VBA Formel in die letzte Zeile (+1) eintragen


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke im Projekt-Explorer mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.

  3. Gib den folgenden Code ein:

    Sub EintragInLetzteZeile()
       Dim LetzteZeile As Long
       LetzteZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
       Cells(LetzteZeile + 1, 4).FormulaR1C1 = "=SUMME(ZÄHLENWENN(R2C:R" & LetzteZeile & "C,{""Krit1"",""Krit2""}))"
    End Sub
  4. Schließe den VBA-Editor: Drücke ALT + Q, um den Editor zu schließen.

  5. Führe das Makro aus: Gehe zu Entwicklertools > Makros, wähle EintragInLetzteZeile und klicke auf Ausführen.

Dieser Code sucht nach der letzten Zeile in der ersten Spalte und trägt die gewünschte Formel in die nächste Zeile der vierten Spalte ein.


Häufige Fehler und Lösungen

  • Formel wird nicht korrekt eingetragen: Stelle sicher, dass Du FormulaR1C1 und nicht Formula verwendest. Dies ist wichtig, um die relative Adressierung korrekt zu handhaben.

  • Fehler bei der Zeilenberechnung: Wenn die letzte Zeile nicht korrekt erkannt wird, überprüfe, ob die Tabelle leere Zeilen enthält. Die End(xlUp)-Methode funktioniert am besten bei durchgehenden Daten.

  • Syntaxfehler in der Formel: Achte darauf, dass Du die richtigen Anführungszeichen verwendest und die Formel korrekt aufbaust.


Alternative Methoden

Eine Alternative zur Verwendung von VBA ist die Verwendung von Excel-Formeln, um ähnliche Ergebnisse zu erzielen.

  • Formel in Zelle einfügen: Du kannst auch die folgende Formel in eine Zelle manuell eingeben:

    =SUMME(ZÄHLENWENN(D2:D100;{"Krit1";"Krit2"}))
  • Tabelle als dynamisch definierte Namensliste: Definiere einen dynamischen Bereich, der die letzte Zeile automatisch anpasst. Das kannst Du mit einer Kombination von OFFSET und COUNTA erreichen.


Praktische Beispiele

Hier sind einige Beispiele, wie Du den VBA-Code anpassen kannst:

  1. Ändern der Spalte: Wenn Du die Formel in einer anderen Spalte eintragen möchtest, ändere die Zahl 4 in Cells(LetzteZeile + 1, 4) auf die gewünschte Spalte.

  2. Anpassung der Kriterien: Ändere die Kriterien in der Formel, um sie an Deine Bedürfnisse anzupassen:

    Cells(LetzteZeile + 1, 4).FormulaR1C1 = "=SUMME(ZÄHLENWENN(R2C:R" & LetzteZeile & "C,{""NeuesKriterium1"",""NeuesKriterium2""}))"

Tipps für Profis

  • Fehlerbehandlung einbauen: Füge Fehlerbehandlungsroutinen hinzu, um sicherzustellen, dass Dein Makro auch bei unerwarteten Daten robust bleibt.

    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0
  • Dokumentation: Kommentiere Deinen Code gut, damit Du und andere Benutzer später nachvollziehen können, was jeder Teil des Codes macht.


FAQ: Häufige Fragen

1. Wie finde ich die letzte Zeile in einer anderen Spalte?
Du kannst die Spalte in der Cells-Funktion anpassen. Zum Beispiel Cells(Rows.Count, 2).End(xlUp).Row für die zweite Spalte.

2. Funktioniert das auch in Excel Online?
Leider ist die VBA-Funktionalität nicht in Excel Online verfügbar. Du musst die Desktop-Version verwenden, um VBA-Makros auszuführen.

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