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

Forumthread: WENN Formel mit VBA einfügen

WENN Formel mit VBA einfügen
01.07.2017 15:25:11
_Domi_
Hallo Zusammen,
ich hänge an einem Punkt in meinem Projekt, und zwar wird automatisch wenn in der Tabelle die vorletzte Zeile erreicht wird eine die Letzte kopiert und danach eingefügt.
Dies geschieht unter anderem durch folgende WENN Formel die die letzte Zeile mit einem x markiert.
Da ich bereits ein Makro habe das mir die Zeile einfügt würde ich die WENN Formel auch da mit einbringen wollen.
Leider funktioniert es nicht (Laufzeitfehler 1004).
Hier die normale Wenn Formel (Zelle N39):
=WENN(B38="";;WENN(N40="0";"0";"x"))
Hier die VBA Zeile:
Sheets("Dokumentationsblatt").Range("N" & letzteZeile).Formula = "=WENN(B" & (letzteZeile - 1) & "=" & Range("U3").Value & ";;WENN(N" & (letzteZeile + 1) & "=" & Range("U5").Value & ";" & Range("U5").Value & ";" & Range("U4").Value & "))"
Info: IN U3 ist eine Leere Zelle, da "" nicht funktioniert hat beim testen.
Das gleiche gilt für U5(0) und U4(x).
Kann mir jemand sagen ob etwas am Syntax nichts stimmt bzw. warum es nicht funzt.
Danke und Gruß
Domi :)
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: WENN Formel mit VBA einfügen
01.07.2017 15:31:43
Hajo_Zi
Du benutzt Formual also englische Formel nicht Formulalocal.
Füge in die Datei eine internationale Makro Vorlage ein und kopiere Deine Formel dahin, dann hast Du die Übersetzung.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Anzeige
AW: WENN Formel mit VBA einfügen
01.07.2017 15:34:48
Beverly
Hi,
mal generell: benutze .FormulaLocal anstelle .Formula - andernfalls musst du die Formel in der englischen Schreibweise verwenden. Außerdem muss jdes Anführungszeichen doppelt geschrieben werden - also z.B. & ""="" &


Anzeige
AW: WENN Formel mit VBA einfügen
01.07.2017 15:42:17
Sepp
Hallo Domi,
.Formula = "=IF(B" & letzteZeile - 1 & "="""",,IF(N" & letzteZeile + 1 & "=0,0,""x""))"

Gruß Sepp

Anzeige
AW: WENN Formel mit VBA einfügen
01.07.2017 16:01:08
_Domi_
Danke Sepp!
Funktioniert super.
;

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

WENN Formel mit VBA einfügen


Schritt-für-Schritt-Anleitung

  1. Öffne das Excel-Dokument.

  2. Gehe in den VBA-Editor (ALT + F11).

  3. Erstelle ein neues Modul oder öffne ein bestehendes.

  4. Nutze die folgende VBA-Zeile, um eine WENN Formel in eine Zelle einzufügen:

    Sheets("Dokumentationsblatt").Range("N" & letzteZeile).FormulaLocal = "=WENN(B" & (letzteZeile - 1) & "="""";;WENN(N" & (letzteZeile + 1) & "=0;0;""x""))"

    Achte darauf, dass du .FormulaLocal verwendest, um die Formel in der richtigen Sprache einzufügen.

  5. Führe das Makro aus, um die Formel zu testen.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt häufig auf, wenn die Syntax der Formel nicht korrekt ist. Stelle sicher, dass alle Anführungszeichen korrekt gesetzt sind. In VBA müssen Anführungszeichen doppelt geschrieben werden:

    "=WENN(B" & (letzteZeile - 1) & "="""";;WENN(N" & (letzteZeile + 1) & "=0;0;""x""))"
  • Formel wird nicht erkannt: Wenn du .Formula anstelle von .FormulaLocal verwendest, wird die Formel möglicherweise nicht korrekt interpretiert. Nutze .FormulaLocal, um die lokale Schreibweise zu verwenden.


Alternative Methoden

Wenn du Schwierigkeiten mit der .Formula oder .FormulaLocal Methode hast, kannst du auch die Range.Value-Methode verwenden:

Sheets("Dokumentationsblatt").Range("N" & letzteZeile).Value = "=WENN(B" & (letzteZeile - 1) & "="""";;WENN(N" & (letzteZeile + 1) & "=0;0;""x""))"

Diese Methode fügt die Formel direkt als Text in die Zelle ein.


Praktische Beispiele

Hier ist ein einfaches Beispiel für eine Anwendung der WENN Formel in VBA:

Sub EinfuegenWENNFormel()
    Dim letzteZeile As Long
    letzteZeile = Sheets("Dokumentationsblatt").Cells(Rows.Count, "B").End(xlUp).Row
    Sheets("Dokumentationsblatt").Range("N" & letzteZeile).FormulaLocal = "=WENN(B" & (letzteZeile - 1) & "="""";;WENN(N" & (letzteZeile + 1) & "=0;0;""x""))"
End Sub

Dieses Makro sucht die letzte Zeile in Spalte B und fügt die WENN Formel in die entsprechende Zelle in Spalte N ein.


Tipps für Profis

  • Verwende Debugging: Nutze den Debugger in VBA, um den Code Schritt für Schritt zu durchlaufen und Fehler leichter zu identifizieren.
  • Formel in U3 als leer markieren: Wenn du eine leere Zelle ansprechen möchtest, verwende """" für leere Werte in der WENN Formel.
  • Dokumentation: Halte deine VBA-Formeln und deren Zwecke in Kommentaren fest, um die Wartung zu erleichtern.

FAQ: Häufige Fragen

1. Warum funktioniert meine WENN Formel nicht in VBA?
Es kann sein, dass du die falsche Schreibweise oder Syntax verwendest. Stelle sicher, dass du .FormulaLocal verwendest und dass alle Anführungszeichen korrekt gesetzt sind.

2. Wie kann ich eine Excel Formel in VBA verwenden?
Du kannst die Methode .Formula oder .FormulaLocal verwenden, um eine Excel Formel in eine Zelle einzufügen. Achte darauf, die richtige Syntax zu benutzen.

3. Was ist der Unterschied zwischen .Formula und .FormulaLocal?
.Formula verwendet die englische Schreibweise der Formel, während .FormulaLocal die lokale Schreibweise verwendet, die von der Sprache deines Excel-Programms abhängt.

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