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

Forumthread: Auto Filldown Matrixformel

Auto Filldown Matrixformel
18.03.2022 09:44:17
Kalle
Liebes Forum,
ich möchte gerne beim Dateistart eine Matrixformel (Modul-Funktion] in X5 einsetzen und diese automatisiert via FillDown über die bestehenden Daten laufen lassen. Mein bisheriger Versuch scheitert aber an einem Laufzeitfehler, der wohl mit zusätzlichen Array-Eigenschaften zu tun hat - aber warum nur?

Private Sub Workbook_Open()
With ThisWorkbook.Worksheets("ZOE_Aktuell")
Range("X5").FormulaArray = _
"={AendVorWo($A$5:A5;$E$5:E5;$V$5:V5;0;100)}"
Range("X5:X" & Cells(Rows.Count, "A").End(xlUp).Row).FillDown
End With
End Sub
Die Datei ist etwas zu groß für hier, daher der Privatlink: https://drive.google.com/file/d/1Ky7XSRSH2-kjpDTMDUeGMCVwKBlmUafe/view?usp=sharing
Der Grund für dieses Anliegen ist ein merkwürdiges Verhalten von Excel: Sobald ich neue Zeilen anlege oder einfüge, wird die forlaufende Formelführung der Matrixformel unterbrochen, so dass Quatsch berechnet wird und ich die Formel immer wieder manuell "herunterziehen" muss.
Freue mich wie immer auf Eure Ideen
Danke und viele Grüße
Kalle
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auto Filldown Matrixformel
18.03.2022 09:54:15
Rudi
Hallo,
lass die {} in der Formel weg.
Gruß
Rudi
AW: Auto Filldown Matrixformel
18.03.2022 10:13:37
Kalle
Hallo Rudi,
Dein Tipp brachte leider keine Veränderung. Selber Fehler: "Die FomulaArray-Eigenschaft des Range-Objekts kann nicht festgelegt werden" ...
VG Kalle
AW: Auto Filldown Matrixformel
18.03.2022 10:53:38
ChrisL
Hi
Englische Schreibweise mit Komma statt Strichpunkt

Range("X5").FormulaArray = "=AendVorWo($A$5:A5,$E$5:E5,$V$5:V5,0,100)"
cu
Chris
Anzeige
AW: Auto Filldown Matrixformel
18.03.2022 11:21:12
Kalle
Perfekt! Das war der Grund und nun läuft es wie gewollt. Vielen Dank!
Kannst Du Dir erklären, warum in einer intelligenten Tabelle diese merkwürdige Unterbrechung der Formelfolge eintritt? Das habe ich bisher noch nirgendwo in dieser Form erlebt ...
VG Kalle
Anschlussfrage offen
18.03.2022 11:35:49
ChrisL
Hi
Danke für die Rückmeldung.
Die Datei konnte ich nicht downloaden (Firewall verbietet Google-Drive), weshalb ich nicht weiss, was genau gemeint ist. Anhand der Beschreibung vermute ich, dass ich sowas auch noch nie gesehen habe.
Ich lasse offen.
cu
Chris
Anzeige
AW: Anschlussfrage offen
18.03.2022 12:03:53
Kalle
Ok, Danke!
Neues Phänomen: Wenn ich eine normale Formel auf diese Weise und unter Beachtung der Schreibweise in den FillDown setze, schreibt Excel immer "@" zwischen Istgleich und die Formel. Es erscheint dann der Fehler #NAME in allen Zellen. Was ist daran bitte inkorrekt?

Private Sub Workbook_Open()
With ThisWorkbook.Worksheets("ZOE_Aktuell")
Range("X5").FormulaArray = "=AendVorWo($A$5:A5,$E$5:E5,$V$5:V5,0,100)"
Range("X5:X" & Cells(Rows.Count, "A").End(xlUp).Row).FillDown
Range("Y5").FormulaArray = "=Aend1Wo($A$5:A5,$E$5:E5,$V$5:V5,0,100)"
Range("Y5:Y" & Cells(Rows.Count, "A").End(xlUp).Row).FillDown
Range("Z5").Formula = "=TEILERGEBNIS(103,E5)"
Range("Z5:Z" & Cells(Rows.Count, "A").End(xlUp).Row).FillDown
End With
End Sub
Viele Grüße
Kalle
Anzeige
AW: Anschlussfrage offen
18.03.2022 12:18:27
Rudi
wenn du deutsche Funktionsnamen verwendest, musst du auch FormulaLocal verwenden.
Range("Z5").FormulaLocal = "=TEILERGEBNIS(103,E5)"
Gruß
Rudi
AW: Anschlussfrage offen
18.03.2022 12:22:16
ChrisL
Hi
Wie Rudi schreibt, aber dann mit Strichpunkt:

Range("Z5").FormulaLocal = "=TEILERGEBNIS(103;E5)"
oder eben die englische Schreibweise:

Range("Z5").Formula = "=SUBTOTAL(103,E5)"
Variante 2 ist mir persönliche sympathischer, da es auch auf fremdsprachigen Rechnern funktioniert.
cu
Chris
Anzeige
AW: Anschlussfrage offen
18.03.2022 12:35:31
Kalle
... ok Danke! Da muss man offenbar mehr beachten als angenommen. Die Teilergebnisformel wird jetzt ordentlich eingefügt.
Da wir gerade bei der Schreibweise sind:

Range("AA5").FormulaLocal = "=WENN(L5="anwesend",1,"")"
Wie verpacke ich Formeln, die sich auf Strings beziehen, ohne dabei die Befehls-Syntax zu zerschießen? Habe es mit Hochkommata probiert, aber er meckert trotzdem rum ... Gibt es dazu eine einheitliche Verfahrensregel?

Range("AA5").FormulaLocal = "=WENN(L5='anwesend';1;'unentschuldigt')"
LG Kalle
Anzeige
AW: Anschlussfrage offen
18.03.2022 12:41:54
ChrisL
Hi
verdoppeln und weiterhin Komma/Strichpunkt beachten...

Range("AA5").FormulaLocal = "=WENN(L5=""anwesend"";1;"""")"
Range("AA5").Formula = "=IF(L5=""anwesend"",1,"""")"
Range("AA5").FormulaLocal = "=WENN(L5=""anwesend"";1;""unentschuldigt"")"
Range("AA5").Formula = "=IF(L5=""anwesend"",1,""unentschuldigt"")"
cu
Chris
Anzeige
AW: Anschlussfrage offen
18.03.2022 12:54:27
Kalle
Ok, super - habe ich jetzt verstanden. Ich lasse die Frage weiterhin wegen der Excel-Anomalie offen ...
Danke an Euch beide - wie immer eine Freude, hier mitzumachen.
VG Kalle
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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