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

Forumthread: Formel aus VBA in Zelle schreiben

Formel aus VBA in Zelle schreiben
16.01.2020 13:23:50
MarC
Servus alle,
ich möchte diese Formel mittels VBA in meine Zellen schreiben. Ich habe auch schon eine mögliche Lösung nur diese nicht richtig umgesetzt bzw. ich finde meinen Fehler nicht. Könnte mir bitte jemand bei der Fehlersuche helfen?
Formel:
=WENN(ODER(J7="Closed";J7="Canceled");"";H7-HEUTE() & " Overdue")
Meine Lösung (Dynamisch):
.Cells(loLetzte, 9).Formula = "=WENN(ODER(" & .Range(.Cells(loLetzte, 7).Address(0, 0) & "="Closed"; " & .Range(.Cells(loLetzte, 7).Address(0, 0) & "="Canceled");"";(-Heute() & " Overdue")))"

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: FormulaLocal
16.01.2020 13:30:45
Fennek
Hallo,
entweder nimmst du "Cells.Formula" und dann die engliche Schreibweise oder "Cells.FormuulaLocal".
mfg
AW: FormulaLocal
16.01.2020 13:59:53
guennih
Am besten benutzt Du in VBA durchgängig engl. Schreibweise.
Auf Dauer tust Du dich damit leichter, und du bist robuster ggü Spracheffekten.
AW: Formel aus VBA in Zelle schreiben
16.01.2020 13:56:53
Daniel
Hi
wie schon beschrieben:
.Formula: Formeln in englisch, dh englische Funktionsnamen und Komma als Trennzeichen
.FormulaLocal: Formel in Landessprache (deutsch) mit Semikolon als Trennzeichen.
Grundsätzlich gilt, dass Anführungszeichen, die zum Text gehörnen immer doppelt angegeben werden müssen, damit sie der Editor von den Anführungszeichen unterscheiden kann, die den Teiltext begrenzen.
außerdem sollte man sich in VBA mit der .FormulaR1C1 bzw .FormulaR1C1Local-Schreibweise von Formeln anfreunden, weil in dieser Schreibweise relative Zellbezüge auch wirklich relativ beschrieben werden können und somit der Code einfacher bzw konstant wird, so dass man ihn nicht mehr zusammenstückeln muss.
in deinem Fall:
.Cells(LoLetze, 9).FormulaR1C1 = "=IF(OR(RC10=""Closed"",RC10=""Cancelecd""),"""",RC8-Today()&"" _
Overdue"")"

wie du siehst, ist die Formel ein einfacher Texte ohne Unterbrechungen.
Wenn du das nicht selber schreiben willst, der Recorder zeichnet so auf, so dass es eigentlich ganz einfach ist, den Code für das Schreiben von Formeln zu erstellen.
Gruß Daniel
Anzeige
Danke euch :-)
20.01.2020 17:48:38
MarC
Hi Daniel, ich habe mir schon gedacht dass sich das beißt, wenn ich nur ein " hin mache, aber ich habe nirgendwo gelesen das bei einem Text in einer Formel "" am Anfang und Ende eines Textes hingekommen. Aber egal jetzt weiß ich es und deine mega kurze Lösung läuft auch. Vielen Dank für deine Hilfe
Anzeige
;

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

Formel aus VBA in Zelle schreiben


Schritt-für-Schritt-Anleitung

Um eine Formel per VBA in eine Zelle zu schreiben, befolge diese Schritte:

  1. Öffne den VBA-Editor in Excel (Alt + F11).

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

  3. Schreibe den folgenden Code:

    Sub SchreibeFormelInZelle()
       Dim loLetzte As Long
       loLetzte = Cells(Rows.Count, 1).End(xlUp).Row + 1 ' Finde die nächste freie Zeile
       Cells(loLetzte, 9).Formula = "=IF(OR(J" & loLetzte & "=""Closed"", J" & loLetzte & "=""Canceled""), """", H" & loLetzte & "-TODAY() & "" Overdue"")"
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus (Alt + F8).

Diese Schritte zeigen dir, wie du eine Excel VBA Formel in einer Zelle einfügen kannst.


Häufige Fehler und Lösungen

  • Fehler: Ungültige Formel
    Stelle sicher, dass die Formel korrekt geschrieben ist. Bei Text, der in Anführungszeichen steht, müssen doppelte Anführungszeichen verwendet werden.

  • Lösung: Verwendung von .Formula und .FormulaLocal
    Benutze .Formula für englische Funktionsnamen und Kommas als Trennzeichen. .FormulaLocal ist für die deutsche Schreibweise mit Semikolon als Trennzeichen gedacht.

  • Fehler: Zellbezüge stimmen nicht
    Überprüfe, ob die Zellbezüge in deiner Formel korrekt sind, besonders wenn du mit relativen Bezügen arbeitest.


Alternative Methoden

Eine alternative Methode, um eine VBA Formel in Zelle zu schreiben, ist die Verwendung der .FormulaR1C1-Eigenschaft. Diese ermöglicht es dir, relative Zellbezüge einfacher zu handhaben. Hier ein Beispiel:

.Cells(loLetzte, 9).FormulaR1C1 = "=IF(OR(RC10=""Closed"", RC10=""Canceled""), """", RC8-TODAY() & "" Overdue"")"

Diese Methode ist besonders hilfreich, wenn du viele Formeln in verschiedenen Zellen schreiben musst.


Praktische Beispiele

Hier sind einige praktische Beispiele für das Schreiben von Excel VBA Formeln in Zellen:

  1. Einfaches Beispiel:

    Cells(1, 1).Formula = "=SUM(A2:A10)"
  2. Bedingte Formatierung:

    Cells(2, 2).Formula = "=IF(A2>10, ""Über 10"", ""Unter 10"")"
  3. Wert in Zelle schreiben:

    Cells(3, 3).Value = 100

Diese Beispiele zeigen, wie vielseitig das VBA in Excel ist, und helfen dir, verschiedene Arten von Formeln zu implementieren.


Tipps für Profis

  • Verwende .FormulaR1C1 für Flexibilität: Diese Methode ist besonders nützlich, wenn du mit dynamischen Zellbezügen arbeitest.

  • Nutze den Makro-Recorder: Um schnell VBA-Code zu generieren, kannst du den Makro-Recorder verwenden. Dies hilft dir, die korrekte Syntax zu lernen.

  • Teste deine Formeln im Excel-Blatt: Teste die Formeln zuerst in einer Excel-Zelle, bevor du sie in VBA implementierst. So stellst du sicher, dass sie korrekt sind.


FAQ: Häufige Fragen

1. Wie kann ich eine VBA Formel in einer deutschen Excel-Version verwenden?
Nutze die .FormulaLocal-Eigenschaft für die deutsche Schreibweise und achte darauf, Semikolon als Trennzeichen zu verwenden.

2. Was mache ich, wenn meine Formel nicht funktioniert?
Überprüfe die Syntax auf doppelte Anführungszeichen und stelle sicher, dass die Zellbezüge korrekt sind. Überlege auch, ob du die Formel zuerst in einer Excel-Zelle testen kannst.

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