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

Forumthread: Formel mit VBA einfügen funktioniert nicht

Formel mit VBA einfügen funktioniert nicht
31.01.2019 14:05:00
Tobias
Hallo allerseits,
Kann mir jenamd verraten, weshalb dies nicht funktioniert?
Ich will per VBA eine Formel in Excel einfügen, aber da kommt immer der Fehler 1004.
Wenn ich die Formel manuell einfüge, kalppt es.
Danke für die Hilfe!
_________________________________________
currentrow = 10
Debug.Print "=WENN(UND(LINKS(" & Cells(currentrow, 1).Address & " ;1)<>" & Chr(34) & "?" & Chr(34) & ";" & Cells(currentrow, 5).Address & "+" & Cells(currentrow, 10).Address & " > 0);" & Cells(currentrow, 3).Address & "&" & Chr(34) & "|" & Chr(34) & "&" & Cells(currentrow, 5).Address & "+" & Cells(currentrow, 10).Address & ")"
Cells(currentrow, 11).Formula = "=WENN(UND(LINKS(" & Cells(currentrow, 1).Address & " ;1)<>" & Chr(34) & "?" & Chr(34) & ";" & Cells(currentrow, 5).Address & "+" & Cells(currentrow, 10).Address & " > 0);" & Cells(currentrow, 3).Address & "&" & Chr(34) & "|" & Chr(34) & "&" & Cells(currentrow, 5).Address & "+" & Cells(currentrow, 10).Address & ")"
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Formel mit VBA einfügen funktioniert nicht
31.01.2019 14:12:23
EtoPHG
Hallo Tobias,
VBA gut? Visual Basic for Applications speaks english, not german!
.FormulaLocal statt .Formula !
Gruess Hansueli
AW: Formel mit VBA einfügen funktioniert nicht
31.01.2019 14:30:49
Tobias
DANKE VIELMAL!
In die Richtung habe ich gar nicht gesucht, denn in einem andern Excel Sheet funktionierte das, genauso wie z.B. hier zu finden:
https://stackoverflow.com/questions/42567855/is-there-a-cells-formula-function/42567955
Anzeige
AW: Formel mit VBA einfügen funktioniert nicht
31.01.2019 14:44:34
Daniel
Hi
.Formula funktioniert schon, aber dann muss die Formel wie HansUeli schon schrieb in der Standardsprache von Excel geschrieben sein und das ist ENGLISCH, dh mit englischen Funktionsnamen, dem Komma als Parametertrennzeichen, und dem Punkt als Dezimalzeichen bei Zahlen
das siehst du ja auch auf der von dir verlinkten Seite, da steht in der Formel das englische "CountIf" und kein deutsches "ZählenWenn"
wenn du die Formel in der Schreibweise der aktuellen Ländereinstellung von Excel angeben willst (in Deutschland normalerweise deutsch), dann kannst du das auch tun, nur musst du das VBA dann über .FormulaLocal auch mitteilen (siehe hierzu Hansueli)
Nachteil dabei ist, dass dann der Code nicht mehr funktioniert, wenn er auf einem anderssprachigen Excel laufen soll.
Daher im Code besser .Formula und die englische Schreibweise verwenden.
Gruß Daniel
Anzeige
AW: Formel mit VBA einfügen funktioniert nicht
31.01.2019 15:18:24
Tobias
Alles klar, danke!
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA-Formeln in Excel richtig einfügen


Schritt-für-Schritt-Anleitung

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

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject" und wähle Einfügen > Modul.

  3. Schreibe den VBA-Code: Verwende den folgenden Code, um eine Formel in eine Zelle einzufügen:

    Sub FormelEinfügen()
        Dim currentrow As Long
        currentrow = 10
    
        ' Verwende .FormulaLocal für deutsche Formeln
        Cells(currentrow, 11).FormulaLocal = "=WENN(UND(LINKS(" & Cells(currentrow, 1).Address & " ;1)<>""?"" ;" & Cells(currentrow, 5).Address & "+" & Cells(currentrow, 10).Address & " > 0);" & Cells(currentrow, 3).Address & "&""|""&" & Cells(currentrow, 5).Address & "+" & Cells(currentrow, 10).Address & ")"
    End Sub
  4. Starte das Makro: Führe das Makro durch Drücken des F5-Schlüssels aus. Die Formel sollte jetzt in die Zelle eingefügt werden.


Häufige Fehler und Lösungen

  • Fehler 1004: Dies tritt auf, wenn die Formel nicht korrekt geschrieben ist. Stelle sicher, dass du die richtige Syntax verwendest. Wenn du die Formel in deutscher Sprache einfügen möchtest, benutze .FormulaLocal, wie in der Schritt-für-Schritt-Anleitung gezeigt.

  • Formel wird nicht eingefügt: Überprüfe, ob die Zelle, in die du die Formel einfügen möchtest, nicht schreibgeschützt ist. Außerdem solltest du sicherstellen, dass der VBA-Code die richtige Zelle adressiert (z.B. Cells(currentrow, 11).Address).


Alternative Methoden

Wenn du Schwierigkeiten mit dem VBA-Ansatz hast, kannst du auch die Excel-Funktion EINFÜGEN verwenden. Gehe dazu wie folgt vor:

  1. Schreibe die gewünschte Formel direkt in die Zelle.
  2. Kopiere die Formel.
  3. Verwende STRG + V, um die Formel in andere Zellen einzufügen.

Diese Methode ist einfach, jedoch weniger automatisiert als die Verwendung von VBA.


Praktische Beispiele

Hier ist ein Beispiel für eine einfache AVERAGEIF-Formel, die in VBA eingefügt wird:

Sub AverageIfBeispiel()
    Dim currentrow As Long
    currentrow = 10

    Cells(currentrow, 12).Formula = "=AVERAGEIF(A1:A10, ""<>0"", B1:B10)"
End Sub

In diesem Beispiel berechnet die VBA-Formel den Durchschnitt der Werte in der Spalte B, wenn die entsprechenden Werte in der Spalte A ungleich 0 sind.


Tipps für Profis

  • Nutze .Address effizient: Wenn du VBA verwendest, kannst du die .Address-Eigenschaft nutzen, um die Zellen dynamisch zu referenzieren.

  • Vermeide Sprachprobleme: Wenn du international arbeitest, verwende immer die englischen Funktionsnamen in deinem VBA-Code, um Probleme mit unterschiedlichen Ländereinstellungen zu vermeiden.

  • Debugging: Verwende Debug.Print, um den generierten Formelstring zu überprüfen, bevor du ihn tatsächlich in die Zelle einfügst.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen .Formula und .FormulaLocal?
.Formula verwendet die englische Syntax, während .FormulaLocal die lokale Sprache (z.B. Deutsch) für Formeln verwendet.

2. Warum funktioniert meine Formel nicht, wenn ich sie in VBA schreibe?
Stelle sicher, dass du die richtige Syntax verwendest. Prüfe auch, ob die Zelle, in die du die Formel einfügen möchtest, korrekt adressiert ist und ob du die richtige Sprache verwendest.

3. Wie kann ich Fehler 1004 in VBA vermeiden?
Achte darauf, dass die Formel korrekt ist und dass du die richtige Zelle adressierst. Verwende Debug.Print, um die generierte Formel zu überprüfen, bevor du sie einfügst.

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