Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Laufzeitfehler 1004 bei Formeleintrag

Laufzeitfehler 1004 bei Formeleintrag
13.12.2016 14:40:48
Tobias
Servus zusammen,
ich bekomme leider den Laufzeit1004 bei folgendem Codeabschnitt:

ActiveCell.Formula = "=Average(" & Cells(FMSR - FMW, FMSCQ) & ":" & Cells(FMSR + FMW, FMSCQ) & " _
)"

Die Parameter sind allesamt korrekt deklariert. Hat jemand eine Idee?
Vielen Dank schon mal.
Grüße

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004 bei Formeleintrag
13.12.2016 14:44:29
guenni
Darfst Du denn die Zelle ändern? Stichwort Blattschutz!
AW: Laufzeitfehler 1004 bei Formeleintrag
13.12.2016 14:50:55
Tobias
Hi, danke erst einmal für die schnelle Antwort.
Ja, ich darf die Zelle ändern. Das Problem tritt erst auf, wenn ich versuche meine Spalte ebenfalls variabel zu machen. Ich hatte vorher folgenden Code:
ActiveCell.Formula = "=AVERAGE(Q" & FMSR - FMW & ":Q" & FMSR + FMW & ")"
Der funktioniert auch prima. Nur wollte ich jetzt meine Spalte (hier Q) ebenfalls variabel halten. Hierzu habe ich im Internet ein Beispiel gefunden, bei dem mit Cells gearbeitet wird. Habe dies exakt nachgebaut, hinsichtlich Anführungszeichen und &-Zeichen. Nur kommt hier dann der Laufzeitfehler.
Anzeige
AW: Laufzeitfehler 1004 bei Formeleintrag
13.12.2016 14:59:25
UweD
Hallo
versuch es sonst mal so
ActiveCell.Formula = "=Average(" & Cells(FMSR - FMW, FMSCQ).Address & ":" & Cells(FMSR + FMW,  _
FMSCQ).Address & ")"
oder so ..
ActiveCell.Formula = "=Average(" & Range(Cells(FMSR - FMW, FMSCQ), Cells(FMSR + FMW, FMSCQ)).Address & " )"

der Fehler kommt aber auch, wenn (FMSR - FMW) >= 0 ist?
LG UweD
AW: Laufzeitfehler 1004 bei Formeleintrag
13.12.2016 15:02:49
UweD
sorry meine natürlich kleiner gleich
der Fehler kommt aber auch, wenn (FMSR - FMW) 

Anzeige
AW: Laufzeitfehler 1004 bei Formeleintrag
13.12.2016 15:09:25
Tobias
Hallo Uwe,
danke für deine Antwort. Habe deinen ersten Vorschlag umgesetzt und jetzt funktioniert es. Lag wohl an dem fehlenden .Address hinter der Cells-Angabe.
Habe noch (0,0) hinter Address gepackt, da ich die Formel dann noch über einen definierten Bereich kopiere und daher $-Zeichen in der Formel vermeiden möchte.
Hier nochmal der gesamte Formel-Abschnitt des Codes, für alle die eventuell auch mal Probleme haben:

Cells(FMSR, FMDC).Select
ActiveCell.Formula = "=Average(" & Cells(FMSR - FMW, FMSCQ).Address(0, 0) & ":" & Cells(FMSR +  _
FMW, FMSCQ).Address(0, 0) & ")"
Cells(FMSR, FMDC).AutoFill Destination:=Range(Cells(FMSR, FMDC), Cells(FMER, FMDC)), Type:= _
xlFillDefault
Vielen Dank für die Hilfe!
Grüße, Tobias
Anzeige
AW: gern geschehen owt
13.12.2016 15:17:04
UweD
AW: Laufzeitfehler 1004 bei Formeleintrag
13.12.2016 15:27:49
Daniel
Hi
das lässt sich mit Hilfe der R1C1-Schreibweise für Formeln deutlich vereinfachen.
Außerdem ist es in VBA möglich, die Formel gleich in alle Zellen zu schreiben, das Autofill ist überflüssig:
Range(Cells(FMSR, FMDC), Cells(FMER, FMDC)).FormulaR1C1 = "=Average(R[-" & FMW & "]C" & FMSCQ & ":R[" & FMW & "]C" & FMSCQ & ")"
allerdings bevorzuge ich diese Methode zur Erzeugung der Formel, da sie etwas übersichtlicher ist.
bei der Auswahl der Dummtexte für die Zellbezüge muss man darauf achten, dass diese sonst in der Formel nicht vorkommen:
FO = "=Average(R[-xxx]Cyyy:R[xxx]Cyyy)"
FO = Replace(FO, "xxx", FMW)
FO = Replace(FO, "yyy", FMSCQ)
Range(Cells(FMSR, FMDC), Cells(FMER, FMDC)).FormulaR1C1 = FO
sind zwar ein paar Programmzeilen mehr, aber der Formeltext wird im Code nicht unterbrochen und ist damit wesentlich besser lesbar und man findet ggf die Fehler schneller.
Gruß, Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige