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

AutoFill läuft falsch? warum?

Forumthread: AutoFill läuft falsch? warum?

AutoFill läuft falsch? warum?
17.03.2025 10:44:12
Peter
Ich möchte eine Formel kopieren.
Füge diese in I2 ein und kopiere dann nach rechts bis Q2, nun soll diese nach unten bis zur letzten befüllten Zelle von B kopiert/ausgefüllt werden.
Aber er füllt mir die Spalte I also ab Zelle I2 nicht was mache ich Falsch? Er soll I2/Q2 nach unten ausfüllen bis in B kein Eintrag mehr ist.
Von J bis Q ist alles OK wird befüllt aber I nicht warum?? vielen herzlichen Dank

Code:
Sub Makro1()
Range("I2").Select
ActiveCell.Formula2R1C1 = _
"=IFERROR(INDEX(Tabelle1!C[-1],AGGREGATE(15,6,ROW(Tabelle1!R2C8:R100000C8)/((Tabelle1!R2C3:R100000C3=RC4) *(Tabelle1!R2C4:R100000C4=RC3)*(RC5>=Tabelle1!R2C1:R100000C1)*(RC5=Tabelle1!R2C2:R100000C2)),1)),"""")"
Selection.AutoFill Destination:=Range("I2:Q2"), Type:=xlFillDefault

Dim lngLast As Long
lngLast = Cells(Rows.Count, 2).End(xlUp).Row
'Kopiere die Formel bis zur letzen befüllten Zelle
Range("I2").AutoFill Destination:=Range("I2:Q" & lngLast)
Range("I2").Select


End Sub
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: AutoFill läuft falsch? warum?
17.03.2025 11:16:21
BoskoBiati
Hi,

so sollte es gehen, frage mich aber nicht warum:

Sub Makro1()

Dim lngLast As Long
Range("I2").Formula2R1C1 = _
"=IFERROR(INDEX(Tabelle1!C[-1],AGGREGATE(15,6,ROW(Tabelle1!R2C8:R100000C8)/((Tabelle1!R2C3:R100000C3=RC4) *(Tabelle1!R2C4:R100000C4=RC3)*(RC5>=Tabelle1!R2C1:R100000C1)*(RC5=Tabelle1!R2C2:R100000C2)),1)),"""")"
lngLast = Cells(Rows.Count, 2).End(xlUp).Row
Range("I2").AutoFill Destination:=Range("I2:Q2"), Type:=xlFillDefault
Range("I2:Q2").AutoFill Destination:=Range("I2:Q" & lngLast), Type:=xlFillDefault
End Sub


Gruß

Edgar
Anzeige
frage mich aber nicht warum
17.03.2025 12:43:05
RPP63
Moin!
AutoFill ist ja nichts anderes als "Ziehen des Ausfüllkästchens".
Wenn ich einen "echten" 2D-Bereich füllen will, muss ich doch auch erst nach rechts ziehen und dann nach unten.

Allerdings:
1. Warum per AutoFill? Man kann die Formel doch gleich in den Bereich schreiben.
2. Warum AGGREGAT? Mit 365 würde ich besser gleich FILTER() nehmen.
3. Warum Z1S1-Notation?

Gruß Ralf
Anzeige
AW: frage mich aber nicht warum
17.03.2025 13:25:56
Peter
Allerdings:
1. Warum per AutoFill? Man kann die Formel doch gleich in den Bereich schreiben.
Ja nur wie, ich schreibe die Formel in Zelle I2 und kopiere die dann bis Q2 da hier die Daten aus Tabelle 1 rein müssen
2. Warum AGGREGAT? Mit 365 würde ich besser gleich FILTER() nehmen.
Puh gute Frage
3. Warum Z1S1-Notation?
verstehe ich gar nicht sorry

Problem, ich habe insgesamt 6 Formeln die da rein müssen zuerst 1 dann wird Ergebnis gefiltert, das die leeren Zellen wieder oben sind, dann kommt die nächste Formel in I2 bis Q2 und soll nach unten bis zur letzten leeren Zelle.. so geht es bis alle 6 Formeln durch sind.
Wenn du hier einen performanten Vorschlag hast würde ich mich sehr über eine Antwort freuen.

Peter
Anzeige
AW: frage mich aber nicht warum
17.03.2025 13:44:29
BoskoBiati
Hi,


wenn Du eine Mustertabelle hast.....


Gruß

Edgar
AW: frage mich aber nicht warum
17.03.2025 14:27:02
Daniel
3. Warum Z1S1-Notation?

In der Z1S1-Notation beschreibt man relative Zellbezüge auch relativ.
Dh wenn ich einen Zellbezug auf die linke Nachbarzelle haben will, schreibe ich "=ZS(-1)" und das gilt dann immer, egal in welche Zelle ich die Formel schreibe, die Formel ist damit unabhängig von der Ausgangszelle, die wenn die Formel in eine andere Zelle geschrieben wird, muss ich die Formel nicht ändern.


Mit A1-Notation kann man bezüge nur absolut beschreiben, dh auch relative Bezüge werden mit einer absoluten Adresse beschrieben und diese ändert sich dann in Anhängigkeit von der Ausgangszelle.
Wenn ich also den Bezug linke Nachbarzelle in die Zelle B1 schreibe, ist das "=A1"
Will ich diese Formel dann in eine andere Zelle schreiben, z.B in G5, müsste ich die Formel abändern in "=F5" .
Mit Z1S1-Notation ist die Formel in beiden Fällen "=ZS(-1)"

Daher bevorzuge ich beim Schreiben von Formeln in VBA die Z1S1-Notation.

Gruß Daniel
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige