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

Forumthread: VBA Zelle mit Formel füllen

VBA Zelle mit Formel füllen
08.08.2018 14:33:49
Lars
Hallo zusammen,
aufbauend auf einen vorherigen Post, muss ich noch einmal eine VBA Befehlszeile anpassen und hänge dabei.
Ich möchte auf einem bestehenden Tabellenblatt "Overview" per VBA eine Formel einfügen. D.h. Overview!U11 = QA - 1!N74.
Damit die Verknüpfung nicht verloren geht bei Ändern des Tabellenblattnamens und das _ Tabellenblatt immer den Index 3 hat, lautet der Code:

strTab = Sheets(3).Name
Sheets("Overview").Range("U11").Formula = "='" & strTab & "'!N74"

Dies bewirkt eine variable Verknüpfung zum Tabellenblatt 3 und Zelle N74.
So weit so gut.
Ich habe festgestellt, dass ich die Formel mit einer WENN DANN-Funktion verküpft haben muss.
Konkret lautet meine Formel in Overview!U11: =WENN('QA - 1'!N74="";"n.a.";'QA - 1'!N74)
Dies muss ich nun in die VBA Anweisung eingearbeitet bekommen und habe es versucht mit:

Sheets("Overview").Range("U11).Formula = "=WENN('" & strTab & "'!N74="";"n.a.";'" &  _
strTab & "'!N74)"

...was zu einem Syntaxfehler führt.
Woran kann es liegen?
Viele Grüße
Lars
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
" innerh. einer Formel musst Du in VBA verdoppeln
08.08.2018 14:37:19
Michael

Sheets("Overview").Range("U11).Formula = "=WENN('" & strTab & "'!N74="""";""n.a."";'" &  _
strTab & "'!N74)"

LG
Michael
AW: VBA Zelle mit Formel füllen
08.08.2018 14:40:46
ChrisL
Hi Lars

Sheets("Overview").Range("U11").Formula = "=IF('" & strTab & "'!N74="""",""n.a."",'" & _
strTab & "'!N74)"
oder
Sheets("Overview").Range("U11").FormulaLocal = "=WENN('" & strTab & "'!N74="""";""n.a."";'" & _
strTab & "'!N74)"
Ich würde Variante 1 nehmen.
cu
Chris
Anzeige
AW: VBA Zelle mit Formel füllen
08.08.2018 14:57:48
Lars
Knapp daneben ist auch vorbei.
Vielen Dank, jetzt läuft es.
VG
Lars
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zelle mit Formel über VBA füllen


Schritt-für-Schritt-Anleitung

Um eine Zelle in Excel mit einer Formel über VBA zu füllen, befolge diese Schritte:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt, wähle Einfügen und dann Modul.

  3. Erstelle deinen VBA-Code: Nutze den folgenden Code, um die Formel in die Zelle U11 des Tabellenblatts "Overview" einzufügen.

    Sub FormelEinfügen()
       Dim strTab As String
       strTab = Sheets(3).Name
       Sheets("Overview").Range("U11").Formula = "=WENN('" & strTab & "'!N74="""";""n.a."";'" & strTab & "'!N74)"
    End Sub
  4. Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8, wähle FormelEinfügen aus und klicke auf Ausführen.

Damit wird die Excel-Formel korrekt in die Zelle eingefügt.


Häufige Fehler und Lösungen

Ein häufiger Fehler beim Füllen einer Zelle über VBA ist der Syntaxfehler. Hier sind einige Lösungen:

  • Fehlende Anführungszeichen: Achte darauf, dass innerhalb der Formel Anführungszeichen korrekt gesetzt sind. In VBA müssen Anführungszeichen verdoppelt werden. Beispiel:

    Sheets("Overview").Range("U11").Formula = "=WENN('" & strTab & "'!N74="""";""n.a."";'" & strTab & "'!N74)"
  • Falsche Zelle: Stelle sicher, dass die Zielzelle korrekt angegeben ist. Ein Tippfehler in der Zellreferenz kann zu Fehlern führen.


Alternative Methoden

Falls du nicht mit VBA arbeiten möchtest, kannst du auch direkt in die Zelle schreiben. Eine einfache Methode ist:

  1. Klicke auf die Zelle U11 im Blatt "Overview".
  2. Gib die Formel direkt ein:

    =WENN('QA - 1'!N74="";"n.a.";'QA - 1'!N74)

Diese Methode ist einfacher, wenn du keine Programmierung benötigst.


Praktische Beispiele

Hier sind einige Beispiele, wie du die VBA-Anweisung anpassen kannst:

  • Einfügen einer anderen Formel: Wenn du eine andere Excel-Formel verwenden möchtest, ändere einfach den Ausdruck im Formula-Feld.

    Sheets("Overview").Range("U11").Formula = "=SUM('" & strTab & "'!A1:A10)"
  • Verwenden von Bedingungen: Du kannst auch komplexere Bedingungen in deine VBA-Anweisung einfügen, indem du die IF-Funktion verwendest.


Tipps für Profis

  • Verwende FormulaLocal: Wenn du mit internationalen Excel-Versionen arbeitest, kann es sinnvoll sein, FormulaLocal statt Formula zu verwenden, um sprachspezifische Formeln zu unterstützen.

    Sheets("Overview").Range("U11").FormulaLocal = "=WENN('" & strTab & "'!N74="""";""n.a."";'" & strTab & "'!N74)"
  • Debugging: Nutze die Debugging-Tools im VBA-Editor, um Fehler zu identifizieren und den Code schrittweise auszuführen.


FAQ: Häufige Fragen

1. Wie kann ich den Namen des Tabellenblatts dynamisch anpassen?
Du kannst den Index anpassen, um das gewünschte Tabellenblatt auszuwählen. Beispiel: Sheets(Index).Name.

2. Was mache ich, wenn ich einen Syntaxfehler erhalte?
Überprüfe alle Anführungszeichen und Klammern in deinem VBA-Code. Achte darauf, dass sie korrekt gesetzt sind und verdoppelt werden, wenn sie in Formeln verwendet werden.

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