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

Forumthread: Value Eigenschaft setzen mit Formelstring

Value Eigenschaft setzen mit Formelstring
29.09.2006 23:31:13
Andi
Ich möchte per VBA Formeln in die betreffenden Zellen eintragen
Dies funktioniert:
Worksheets("akpreise").Cells(y, 5).Value = "=MAX(K" & y & ":P" & y & ")"
Worksheets("akpreise").Cells(y, 6).Value = "=B" & y & "*E" & y
Hier kommt es zu einem Laufzeitfehler 1004
Worksheets("akpreise").Cells(y, 8).Value = "=MAX(E" & y & "*I" & y & ";Q" & y & ")"
aber warum? selbst wenn ich die Formel kürze bis auf 2 Zahlen mit einem
; getrennt kommt es zum Fehler.
kann mir jemand auf die Sprünge helfen?
Vielen Dank im Voraus
mfG
ANdreas
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Was hast Du vor?
29.09.2006 23:42:12
{Boris}
Hi Andreas,
willst Du Formeln in die Zelle schreiben oder die Formeln als Text in der Zelle stehen haben?
Für Formeln nutze die Formula(local)-Eigenschaft - und für beide Fälle gilt: Anführungszeichen innerhalb der Formel müssen doppelt "" geschrieben werden.
Grüße Boris
AW: Value Eigenschaft setzen mit Formelstring
30.09.2006 01:19:35
Stefan
Hallo Andreas,
Versuch mal das semikolon mit einem Komma zu ersetzen... nur so ne Idee...
Schoene Gruesse
Stefan Br.
Anzeige
AW: Value Eigenschaft setzen mit Formelstring
30.09.2006 14:00:11
Daniel
Hallo
um es mal klar zu formulieren:
es geht um das Trennzeichen, mit dem in Excelformeln die einzelnen Parameter getrennt werden, also im deuteschen Excel das ";" (in Internationalen bzw englischen wird hier das "," verwendet
Wenn du den Formeltext an .VALUE zuweist, befindest du dich auf internationalen Sprachebene, das heißst, du mußt im Formelstring as ";" durch "," ersetzen:
Worksheets("akpreise").Cells(y, 8).Value = "=MAX(E" & y & "*I" & y & ",Q" & y & ")"
Wenn du den Formeltext an .FORMULALOCAL zuweist, bist du auf der deutschen Sprachebene und kannst das ";" stehen lassen:
Worksheets("akpreise").Cells(y, 8).FormulaLocal = "=MAX(E" & y & "*I" & y & ";Q" & y & ")"
Die Doppelten Anführungszeichen mußt du dann setzen, wenn das Anführungszeichen Teil des Formeltextes ist. (kommt aber in deinenm Beispiel nicht vor). DAs Anführungszeichen zum Trennen von Fix-Text und Variablen bleibt weiterhin einfach
Willst du in eine Zelle per Makro folgende Formel schreiben:
="Druckdatum: "&TEXT(HEUTE();"tt.mmm.jjjj")
und dabei ein Variables Datumsformat verwenden, sieht der VBA-Befehl so aus:

Sub test()
Dim DatFormat(3) As String
Dim i As Long
DatFormat(1) = "TT. MMMM JJJJ"
DatFormat(2) = "JJJJ-MM-TT"
DatFormat(3) = "MM/TT/JJJJ"
For i = 1 To 3
Cells(i, 1).FormulaLocal = "=""Druckdatum: ""&TEXT(HEUTE();""" & DatFormat(i) & """)"
Next
End Sub

hier kommen dann bis zu 3 Anführungzeichen hintereinander: 2 aus dem Formeltext und das dritte zum trennen von Fixtext und Variable
Gruß, Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige