Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Teilergebnis in VBA als Variable

Forumthread: Teilergebnis in VBA als Variable

Teilergebnis in VBA als Variable
ptonka
Hallo zusammen,
ich möchte das Teilergebnis (=Teilergbnis(3;A:A) per VBA in eine Variable schreiben - also nicht als Formel in dem Blatt hinterlegen. Leider fehlt mir dazu der Befehl. Über einen Tipp wäre ich sehr dankbar.
Gruß,
Ptonka
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Teilergebnis in VBA als Variable
12.10.2010 10:50:42
Tino
Hallo,
versuch es mal so.
Habe noch die Tabelle in die Formel mit eingebaut, beachte die Hochkommas dabei.
Dim lngErgebnis As Long
lngErgebnis = ExecuteExcel4Macro("SUBTOTAL(3,'Tabelle 1'!C1)")
MsgBox lngErgebnis
Gruß Tino
AW: Teilergebnis in VBA als Variable
12.10.2010 11:13:55
ptonka
Hallo Tino,
Danke für den Tipp.
Ich hatte aber schon einen Hinweis eines Kolelgen bekommen und der funktioniert prima.
Dies will ich natürlich den Forums-Teilnehmern nicht vorenthalten:
TErgebnis = WorksheetFunction.Subtotal(3, Range("A:A"))
Hier wird das Ergebnis der Funktion "Teilergebnis" in VBA in die Variable TErgebnis geschrieben.
Gruß,
Ptonka
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Teilergebnis in VBA als Variable


Schritt-für-Schritt-Anleitung

Um das Teilergebnis in VBA als Variable zu speichern, kannst Du die Funktion WorksheetFunction.Subtotal oder ExecuteExcel4Macro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

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

  2. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" auswählst.

  3. Kopiere den folgenden Code in das Modul:

    Dim lngErgebnis As Long
    lngErgebnis = ExecuteExcel4Macro("SUBTOTAL(3,'Tabelle 1'!C1)")
    MsgBox lngErgebnis

    oder

    Dim TErgebnis As Double
    TErgebnis = WorksheetFunction.Subtotal(3, Range("A:A"))
    MsgBox TErgebnis
  4. Passe den Bereich Range("A:A") und die Tabelle nach Bedarf an.

  5. Führe den Code aus, um das Teilergebnis anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: „Objektvariable nicht gesetzt“
    Lösung: Stelle sicher, dass der Bereich, den Du in Range("A:A") angibst, korrekt ist und Daten enthält.

  • Fehler: „Typen unverträglich“
    Lösung: Achte darauf, dass Du den richtigen Datentyp für die Variable verwendest. TErgebnis sollte als Double deklariert werden, wenn Du mit Dezimalzahlen arbeitest.


Alternative Methoden

Neben den oben genannten Methoden gibt es auch andere Ansätze, um Teilergebnisse in VBA zu berechnen:

  • Verwendung von Excel-Formeln direkt in VBA: Du kannst Excel-Formeln in VBA verwenden, um das Teilergebnis in einer Zelle zu berechnen und es dann in eine Variable zu speichern.

    Dim cellValue As Variant
    cellValue = Evaluate("SUBTOTAL(3,A:A)")
    MsgBox cellValue
  • Englische Version: Wenn Du mit der englischen Version von Excel arbeitest, kannst Du SUBTOTAL anstelle von Teilergebnis verwenden.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du das Teilergebnis in VBA verwenden kannst:

  1. Einfaches Teilergebnis:

    Dim TErgebnis As Double
    TErgebnis = WorksheetFunction.Subtotal(3, Range("A:A"))
    MsgBox "Das Teilergebnis ist: " & TErgebnis
  2. Teilergebnis mit spezifischem Bereich:

    Dim TErgebnis As Double
    TErgebnis = WorksheetFunction.Subtotal(3, Range("B2:B10"))
    MsgBox "Das Teilergebnis für B2:B10 ist: " & TErgebnis

Tipps für Profis

  • Nutze SUBTOTAL für dynamische Bereiche, da es nur sichtbare Zellen berücksichtigt, was besonders nützlich ist, wenn Du Filter in Deinen Daten verwendest.
  • Wenn Du mit großen Datenmengen arbeitest, kann die Verwendung von ExecuteExcel4Macro schneller sein als WorksheetFunction.
  • Denke daran, dass die Funktion SUBTOTAL in der englischen Version von Excel als SUBTOTAL und nicht als Teilergebnis bezeichnet wird. Achte darauf, die richtige Syntax zu verwenden.

FAQ: Häufige Fragen

1. Wie kann ich das Teilergebnis für einen bestimmten Bereich berechnen?
Du kannst den spezifischen Bereich in der Funktion angeben, z.B. WorksheetFunction.Subtotal(3, Range("B2:B10")).

2. Welche Excel-Version benötige ich für diese VBA-Funktionen?
Die Funktionalität ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2016 und später.

3. Was ist der Unterschied zwischen WorksheetFunction.Subtotal und ExecuteExcel4Macro?
WorksheetFunction.Subtotal verwendet die VBA-Funktion direkt, während ExecuteExcel4Macro die Excel-4-Makro-Funktion aufruft, was manchmal schneller sein kann.

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