Hallo,
ich habe eine Funktion geschrieben, die eine zusammengesezte SUMMEWENN formel in eine Zelle schreiben soll. Nun gibt mir VBA aber als Fehler " '1004' Anwendungs- oder Objektdefinierter Fehler" aus, wenn ich diese Formel als Cells.Formula schreiben möchte.
Die SummeWenn formel scheint in Ordnung zu sein, denn wenn ich sie als Value schreibe und einfach in Excel ein Gleichheitszeichen davorsetze, funktioniert sie einwandfrei.
"=SUMMEWENN(" & cname & "!E3:E" & arange & ";A" & Row & ";" & cname & "!" & target & "3:" & target & "" & arange & ")"
cname = Company Name | wird aus einer Tabelle ausgelesen und beschreibt den Namen eines Worksheets
arange = ende einer Range | diese wird vorher ausgerechnet und ist variable
target = ZielSpalte | diese wird ausgelesen aus einem Template
Bsp.: SUMMEWENN(Kunde!E3:E7;A7;Kunde!G3:G7)
Wie gesagt, die Formel die herauskommt funktioniert in Excel. Aber ich kann sie nicht über VBA als Formel einfügen.
Ich danke Euch schon jetzt für Eure Hilfe.
ich habe eine Funktion geschrieben, die eine zusammengesezte SUMMEWENN formel in eine Zelle schreiben soll. Nun gibt mir VBA aber als Fehler " '1004' Anwendungs- oder Objektdefinierter Fehler" aus, wenn ich diese Formel als Cells.Formula schreiben möchte.
Die SummeWenn formel scheint in Ordnung zu sein, denn wenn ich sie als Value schreibe und einfach in Excel ein Gleichheitszeichen davorsetze, funktioniert sie einwandfrei.
Code:
Sub fillPVCEU()
Columns("A:A").Select
Selection.Font.ColorIndex = 2
For Row = 1 To 1000
If Worksheets("PVC EU").Range("A" & Row).Value <> "" Then
If Worksheets("PVC EU").Range("A" & Row + 1).Value <> "" Then
For col = 3 To 12
cname = Worksheets("PVC EU").Cells(Row, "B").Value
first = False
arange = 3
Do While Worksheets(cname).Cells(arange, "E").Value <> ""
arange = arange + 1
Loop
target = Worksheets("template").Cells(23, col + 5).Value
formel = "=SUMMEWENN(" & cname & "!E3:E" & arange & ";A" & Row & ";" & cname & "!" & target & "3:" & target & "" & arange & ")"
Worksheets("PVC EU").Cells(Row, col).Formula = formel
Next
End If
End If
Next
End Sub
"=SUMMEWENN(" & cname & "!E3:E" & arange & ";A" & Row & ";" & cname & "!" & target & "3:" & target & "" & arange & ")"
cname = Company Name | wird aus einer Tabelle ausgelesen und beschreibt den Namen eines Worksheets
arange = ende einer Range | diese wird vorher ausgerechnet und ist variable
target = ZielSpalte | diese wird ausgelesen aus einem Template
Bsp.: SUMMEWENN(Kunde!E3:E7;A7;Kunde!G3:G7)
Wie gesagt, die Formel die herauskommt funktioniert in Excel. Aber ich kann sie nicht über VBA als Formel einfügen.
Ich danke Euch schon jetzt für Eure Hilfe.