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

Forumthread: Formel in Zelle schreiben mit Variable

Formel in Zelle schreiben mit Variable
20.11.2019 10:04:15
Kay
Hallo,
ich habe eine recht einfache Berechnung, die ich gern als Formel in eine Zelle schreiben möchte. Allerdings mit Variable in der Zellenbezeichnung.
i = 2
Do While i <= 5
Cells(i, 7).FormulaLocal = "=" & Cells(i, 3) & "*" & Cells(i, 4)
i = i + 1
Loop
Die Berechnung läuft soweit und das Ergebnis stimmt auch. Nur hab ich das Problem, dass wenn ich den Zellenwert (i,3) nun ändere, das Ergebnis nicht angepasst wird. Wie kann ich das lösen?
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel in Zelle schreiben mit Variable
20.11.2019 10:05:30
Hajo_Zi
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

Anzeige
AW: Formel in Zelle schreiben mit Variable
20.11.2019 10:11:43
Kay
Hallo Hajo,
ich kenne deine Standardantwort. Ich gebe dir auch recht, dass es oftmals hilfreich ist, eine Datei vor sich zu haben. Aber erklär mir doch bitte kurz, was an einer leeren Datei nun hilfreich ist.
Die Frage ist doch, wie ich eine Formel in eine Zelle bekomme, die bei Anpassung der Bezugs-Zellenwerte sich selbstständig anpasst (Ergebnis erneut berechnet), ohne das Programm zu bemühen.
Anzeige
falsch gesehen
20.11.2019 10:14:38
Hajo_Zi
Gut dann habe ich das falsch gesehen, das schon Code vorhanden iust. Entschuldigung.
Ich bin dann raus.
Gruß Hajo
AW: Formel in Zelle schreiben mit Variable
20.11.2019 10:22:13
Nepumuk
Hallo Kay,
na dann einfach so:
Cells(i, 7).FormulaLocal = "=" & Cells(i, 3).Address & "*" & Cells(i, 4).Address
Anzeige
AW: Formel in Zelle schreiben mit Variable
20.11.2019 10:33:36
Kay
Hallo Nepumuk,
vielen Dank :-)
Genau so hab ich es mir vorgestellt.
Gruß
AW: Formel in Zelle schreiben mit Variable
20.11.2019 11:11:48
Daniel
Hi
bei Cells(..).Formula = "=Formeltext" für Zielzelle und Formel die selbe Variable zur berechung der Zeilennummer verwendet wird, bietet sich an die R1C1/Z1S1-Schreibweise für Formeln zu verwenden.
damit wird der Code deutlich einfacher, weil du dann bei relativen Zellbezügen die Adresse nicht mehr extra berechnen musst:
Cells(i, 7).FormulaR1C1 = "=RC3*RC4"

oder
Cells(i, 7).FormulaLocal = "=ZS3*ZS4"

dabei sollte dann deutlich werden, dass man die Schleife meist gar nicht braucht, sondern die Formel in alle Zellen gleichzeitig schreiben kann, weil es immer die gleiche Formel ist:
Range("G2:G5").FormulaR1C1 = "=RC3*RC4"

Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

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 Zelle schreiben mit Variable in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Formel in eine Zelle zu schreiben, die sich automatisch anpasst, wenn sich die Werte in Bezugszellen ändern, kannst du den folgenden VBA-Code verwenden. Dieser Code ist einfach und zeigt, wie du eine Formel in Zellen schreiben kannst, wobei die Zellenadressen variabel sind.

Sub FormelInZelleSchreiben()
    Dim i As Integer
    i = 2

    Do While i <= 5
        Cells(i, 7).FormulaLocal = "=" & Cells(i, 3).Address & "*" & Cells(i, 4).Address
        i = i + 1
    Loop
End Sub

Dieser Code platziert die Formel in die Zellen in der 7. Spalte (G). Die Formel multipliziert die Werte aus der 3. Spalte (C) und der 4. Spalte (D). Durch die Verwendung von .Address wird sichergestellt, dass die Formel sich bei Änderungen in den Bezugszellen automatisch aktualisiert.


Häufige Fehler und Lösungen

  1. Fehler: Formel wird nicht aktualisiert

    • Lösung: Stelle sicher, dass du die Address-Eigenschaft verwendest, wie im obigen Beispiel. Wenn du nur Cells(i, 3) verwendest, wird nur der aktuelle Wert übernommen und nicht die Formel.
  2. Fehler: Unbekannter Zellbezug

    • Lösung: Überprüfe, ob die Zellen, auf die verwiesen wird, auch tatsächlich Werte enthalten und existieren, um fehlerhafte Zellreferenzen zu vermeiden.

Alternative Methoden

Eine alternative Methode zur Verwendung der FormulaLocal-Eigenschaft ist die Verwendung von FormulaR1C1. Diese Schreibweise ist oft einfacher, insbesondere wenn du relative Zellbezüge verwendest.

Sub FormelInZelleSchreibenR1C1()
    Range("G2:G5").FormulaR1C1 = "=RC3*RC4"
End Sub

Damit wird die Formel direkt in alle Zellen von G2 bis G5 geschrieben, ohne eine Schleife verwenden zu müssen.


Praktische Beispiele

Hier sind einige Beispiele für das Schreiben von Formeln mit Variablen in Excel VBA:

  1. Summenformel in Zelle schreiben:

    Range("G6").FormulaLocal = "=SUM(C2:C5)"
  2. Einfaches Produkt:

    Range("H2").FormulaLocal = "=C2*D2"

Beide Beispiele zeigen, wie du verschiedene Arten von Formeln in Zellen schreiben kannst, um Berechnungen durchzuführen.


Tipps für Profis

  • Verwende Formatierungen: Stelle sicher, dass deine Zellen die richtige Formatierung haben, um die Ergebnisse korrekt anzuzeigen.
  • Debugging: Nutze die Debug.Print-Anweisung, um den Status deiner Variablen während der Ausführung zu überprüfen.
  • VBA-Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um sicherzustellen, dass dein Code robust ist und mögliche Fehler abfängt.

FAQ: Häufige Fragen

1. Wie kann ich eine vba formel in zelle schreiben, die sich dynamisch anpasst?
Verwende die Address-Eigenschaft, wie in den obigen Beispielen gezeigt, um sicherzustellen, dass die Formel sich automatisch aktualisiert, wenn sich die Werte in den Bezugszellen ändern.

2. Ist es besser, FormulaLocal oder FormulaR1C1 zu verwenden?
Das hängt von deiner Präferenz ab. FormulaR1C1 kann einfacher sein, wenn du mit relativen Bezügen arbeitest, während FormulaLocal für spezifische lokale Formeln nützlich ist.

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