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

Forumthread: Formel in Variable

Formel in Variable
26.09.2016 12:18:29
snoopjav
Hallo Leute,
ganz kurze Frage:
Wie kann ich diese Formel in eine Variable speichern bzw in eine Zelle schreiben:

wks.Cells(j,k)= "='Input PM CM Kosten'!C5*'Materialkosten Forecast'!$C" & l & "$*' _
Materialkosten Forecast'!" & wks1.Cells(1, 1) + i

Konvertieren der Integer-Variablen l und i mit CStr funktioniert nicht, ich kriege einen Laufzeitfehler 1004.
Kann mir jemand helfen?
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel in Variable
26.09.2016 12:26:36
Daniel
Hi
was steht denn in der Zelle wks1.Cells(1, 1)?
damit du eine korrekte Formel erhälst, müsste dort der Spaltenbuchstabe stehen und du solltest diesen Buchstaben mit "&" mit i verketten, nicht mit "+", denn "&" ist immer die Textverkettung, das "+" interpretiert VBA kontextabhänig als Verkettung oder als Addition, was ggf zum Fehler führen kann.
wenn in wks1.Cells(1, 1) eine Zahl steht, die zur Berechnung der Zeilennummer dient, dann fehlt in der Formel der Spaltenbuchstabe und die Formel ist nicht korrekt geschrieben.
Gruß Daniel
Anzeige
AW: Formel in Variable
26.09.2016 12:35:01
snoopjav
Hi Daniel,
in der Tat steht in wks1.Cells(1,1) der Spaltenbuchstabe also in diesem fall 'G'.
Mittlerweile sieht die Formel so aus:

"='Input PM CM Kosten'!C5*'Materialkosten Forecast'!$C" & l & "$*'Materialkosten Forecast'!" &  _
wks1.Cells(1, 1) & i
ich kann sie zwar nun in einer Variable speichern aber nicht wks.Cells(j,k) zuweisen...weitere Idee?
Anzeige
AW: Formel in Variable
26.09.2016 12:51:48
Werner
Hallo,
wks.Cells(j,k).FormulaLocal = "deine Formel"
Gruß Werner
AW: Formel in Variable
26.09.2016 13:08:11
Daniel
Hi
überprüf mal die Reihenfolge deiner "$", da ist noch ein Fehler drin, was dann wieder zu einer ungültigen Formel führt.
kleiner Tip nur so am Rande:
in längeren Formeln bringe ich Variablen so in die Formel ein, das ist übersichtlicher und man erkennt die Fehler schneller:
dim FO as string
dim x as Long
x = 1
FO = "=Tabelle1!$C$xxx"
FO = Replace(FO, "xxx", x)
Cells(...).Formula = FO

Vorteil ist, dass der Formeltext nicht auseinander gerissen wird und man ihn so leichter als ganzes lesen kann.
Bei den Platzhalterzeichen ("xxx") muss man darauf achten, dass man Zeichenfolgen verwendet, die im Formeltext nicht vorkommen.
Gruß Daniel
Anzeige
AW: Formel in Variable
26.09.2016 14:00:45
snoopjav
Danke!
Funktioniert einwandfrei und danke auch für den Tipp!
;

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

Formel in Variable speichern und anwenden


Schritt-für-Schritt-Anleitung

Um eine Formel in eine Variable zu speichern und anschließend in eine Zelle zu schreiben, kannst Du folgenden Schritten folgen:

  1. Formel definieren: Zuerst musst Du die Formel als String in einer Variablen definieren. Achte darauf, dass Du die richtigen Zeichen für die Verkettung verwendest. In VBA sollte dies mit & geschehen.

    Dim FO As String
    FO = "='Input PM CM Kosten'!C5*'Materialkosten Forecast'!$C" & l & "$*'Materialkosten Forecast'!" & wks1.Cells(1, 1) & i
  2. Zelle zuweisen: Um die Formel in eine Zelle zu schreiben, kannst Du die FormulaLocal-Eigenschaft verwenden:

    wks.Cells(j, k).FormulaLocal = FO
  3. Fehlerüberprüfung: Stelle sicher, dass alle Variablen (wie l, i, j, k) korrekt initialisiert sind und die Formel syntaktisch korrekt ist.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt häufig auf, wenn die Formel nicht korrekt formatiert ist. Überprüfe die Verkettung der Variablen und den Inhalt der Zellen.
  • Falsche Zeichen für Verkettung: In VBA sollte für die Verkettung & verwendet werden, nicht +. Das könnte zu Missverständnissen führen und einen Fehler verursachen.
  • Reihenfolge der Platzhalter: Achte darauf, dass Deine $-Zeichen in der Formel korrekt platziert sind. Ein falscher Platz kann die gesamte Formel ungültig machen.

Alternative Methoden

Eine alternative Methode zur Speicherung von Formeln besteht darin, Platzhalter zu verwenden, um die Formel übersichtlicher zu gestalten. Zum Beispiel:

Dim FO As String
Dim x As Long
x = 1
FO = "=Tabelle1!$C$xxx"
FO = Replace(FO, "xxx", x)
Cells(...).Formula = FO

Diese Methode hilft, die Formel klarer zu strukturieren und Fehler schneller zu identifizieren.


Praktische Beispiele

  1. Einfache Produktberechnung:

    Dim l As Long
    Dim i As Long
    l = 5
    i = 2
    Dim FO As String
    FO = "='Input PM CM Kosten'!C5*'Materialkosten Forecast'!$C" & l & "$*'Materialkosten Forecast'!" & "G" & i
    wks.Cells(j, k).FormulaLocal = FO
  2. Verwendung von Variablen für Zeilen und Spalten:

    Dim rowNum As Long
    Dim colNum As Long
    rowNum = 10
    colNum = 2
    FO = "=SUM(A1:A" & rowNum & ")"
    wks.Cells(rowNum, colNum).Formula = FO

Tipps für Profis

  • Verwendung von FormulaR1C1: Wenn Du mit dynamischen Zellreferenzen arbeitest, kann es hilfreich sein, die FormulaR1C1-Eigenschaft zu verwenden, um die Formeln flexibler zu gestalten.
  • Debugging-Tools: Nutze die Debugging-Tools in VBA, um den Inhalt von Variablen vor der Zuweisung zu überprüfen. Dies kann helfen, Fehler schnell zu identifizieren.
  • Dokumentation: Halte Deine Code-Kommentare klar und präzise, um die Struktur Deiner Formeln zu erklären. Das hilft nicht nur Dir, sondern auch anderen, die Deinen Code verwenden.

FAQ: Häufige Fragen

1. Wie speichere ich eine Formel in einer Variablen?
Du kannst eine Formel als String in einer Variablen speichern, indem Du die Formel in Anführungszeichen setzt und die Variablen mit & verkettest.

2. Was ist der Unterschied zwischen Formula und FormulaLocal?
Formula verwendet die englische Formelsyntax, während FormulaLocal die lokale Spracheinstellungen berücksichtigt. Verwende FormulaLocal, wenn Du mit nicht-englischen Excel-Versionen arbeitest.

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