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

Forumthread: Indirekt Formel in VBA

Indirekt Formel in VBA
28.05.2014 07:52:12
K-Pax
Hallo wertes Forum und an alle die verzweifelt nach einer
Möglichkeit suchen die Formel Indirekt in VBA zu nutzen.
Da ich selbst hier und in den anderen mir bekannten Foren nichts funktionierendes
bzw. nichts einfaches gefunden habe, möchte ich meine gefundene Lösung mit euch teilen.
Es ist ja bekannt, dass VBA die Formel "INDIRECT" nicht kennt.
Daher gibt es teils seltsame Konstrukte um diese Tatsache zu umgehen.
Und irgendwie war ich für jede vermeindliche Lösung, die ich gefunden habe zu doof.
Daher hier also meine simple Lösung:
Wenn in Zelle A1 der Wert 'F5 steht
und in Zelle F5 der Wert 8 steht; dann
gibt der Folgende Code den Zellwert 8 wieder.
Range(Range("A1"))

Und damit genau das was man sich so von einer Indirekt-Formel verspricht.
Vielleicht klappt das nicht in allen möglichen Konstellationen,
aber für meine bisherigen Anwendungen perfekt!
Hoffe mein Beitrag hilft dem ein oder anderen.
MfG
K-Pax

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Keine Frage offen! (owT)
28.05.2014 08:35:27
EtoPHG

Keine Frage offen! (owT)
28.05.2014 08:35:27
EtoPHG

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Indirekt Formel in VBA effizient nutzen


Schritt-für-Schritt-Anleitung

Um die INDIRECT-Funktion in VBA zu nutzen, kannst du folgendermaßen vorgehen:

  1. Öffne den VBA-Editor in Excel, indem du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineMappe)", dann "Einfügen" > "Modul".

  3. Gib den folgenden Code ein:

    Dim cellValue As Variant
    cellValue = Range(Range("A1"))
    MsgBox cellValue
  4. Speichere dein Projekt und teste den Code, indem du eine Zelle mit einem Bezug (z. B. F5) in A1 eingibst und den Wert in F5 setzt.

  5. Führe das Makro aus, um den Wert anzuzeigen.

Mit diesem einfachen Ansatz kannst du die INDIRECT-Funktion in deinem VBA-Projekt optimal nutzen.


Häufige Fehler und Lösungen

  • Fehler: "Objektvariable oder With-Blockvariable nicht gesetzt"
    Lösung: Stelle sicher, dass die Zelle, auf die du verweist, korrekt ist und einen Wert enthält.

  • Fehler: "Typen unverträglich"
    Lösung: Überprüfe, ob die Zelle, die du referenzierst, den richtigen Datentyp hat. Zum Beispiel, wenn du versuchst, einen Textwert zu verwenden, wo ein Zahlenwert erwartet wird.


Alternative Methoden

Es gibt mehrere Wege, um indirekte Referenzen in VBA zu nutzen:

  1. Verwendung der Evaluate-Methode:

    Dim result As Variant
    result = Evaluate(Range("A1").Value)
    MsgBox result
  2. Direkte Zellreferenzierung: Wenn du die Werte direkt abfragen möchtest, vermeide die INDIRECT-Funktion und greife direkt auf die Zellen zu.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Nutzung der INDIRECT-Funktion in VBA:

  1. Wert einer Zelle basierend auf einer anderen Zelle:

    Sub Beispiel1()
       Dim wert As Double
       wert = Range(Range("A1").Value).Value
       MsgBox "Der Wert ist: " & wert
    End Sub
  2. Dynamische Berechnungen:

    Sub Beispiel2()
       Dim zellenName As String
       zellenName = "B" & Range("A1").Value
       MsgBox "Der Wert in " & zellenName & " ist: " & Range(zellenName).Value
    End Sub

Tipps für Profis

  • Vermeide es, INDIRECT zu verwenden, wenn du die Möglichkeit hast, direkt auf Zellen zuzugreifen. Dies verbessert die Performance deines Codes.
  • Dokumentiere deinen Code gut, damit du später nachvollziehen kannst, wie du die INDIRECT-Funktion integriert hast.

FAQ: Häufige Fragen

1. Kann ich die INDIRECT-Funktion in allen Excel-Versionen verwenden?
Ja, die INDIRECT-Funktion ist in allen gängigen Excel-Versionen verfügbar, jedoch ist ihre Anwendung in VBA etwas anders.

2. Funktioniert der Code auch bei großen Datenmengen?
Die Leistung kann beeinträchtigt werden, wenn du viele INDIRECT-Referenzen verwendest. In solchen Fällen solltest du alternative Methoden in Betracht ziehen, um die Effizienz zu steigern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige