Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1900to1904
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

Variable in Formel einsetzen

Variable in Formel einsetzen
27.09.2022 09:44:16
Kai
Hallo Community,
ich stehe gerade vor der Frage wie ich in einer Formel für eine Zeile eine Variable setzen kann, die ich am Anfang meines Makros setzen kann.
Ich lasse mir in Spalte G nur Werte anzeigen, wie viele Werte in Zeile 4 vorhanden. Sollte ich aber mehr als 5000 Einträge bekommen, wird die Formel nicht weitergeführt. Ich möchte jetzt quasi am Anfang des Skripts eine Variable festlegen mit einer Zahl. Wie i = 6000, dann wird auch die Formel bis dahin fortgeführt.
Dim LetzteZeile As Long
With ActiveSheet
LetzteZeile = .Cells(Rows.Count, 4).End(xlUp).Row
Range("G2").Select
ActiveCell.FormulaR1C1 = "=MaxWenn(R3C5:R5000C5,R3C6:R5000C6,RC[-1])"
Selection.AutoFill Destination:=Range("G2:G" & LetzteZeile)

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable in Formel einsetzen
27.09.2022 10:09:42
Oberschlumpf
Hi Kai,
änder...

Dim LetzteZeile As Long
...um in...

Dim LetzteZeile As Long, liGrenze As Integer
und änder...

"=MaxWenn(R3C5:R5000C5,R3C6:R5000C6,RC[-1])"
...um in...

"=MaxWenn(R3C5:R" & liGrenze & "C5,R3C6:R" & liGrenze & "C6,RC[-1])"
Hilfts?
Wenn nicht, zeig bitte ein Bsp-Datei.
Ciao
Thorsten
AW: Variable in Formel einsetzen
27.09.2022 10:11:52
onur
Ungetestet:

Dim i
i = 6000
ActiveCell.FormulaR1C1 = "=MaxWenn(R3C5:R" & i & "C5,R3C6:R" & i & "C6,RC[-1])"

Anzeige
AW: Variable in Formel einsetzen
27.09.2022 11:00:16
Kai
Vielen Dank an beide. Es funktioniert
Gruß Kai
AW: Variable in Formel einsetzen
27.09.2022 11:06:29
Yal
Hallo Kai,
eigentlich schon fast alles drin:

Sub Formel_einsetzen()
Dim LetzteZeile As Long
With ActiveSheet
LetzteZeile = .Cells(Rows.Count, 4).End(xlUp).Row
Range(.Range("G2"), .Cells(LetzteZeile, "G")).FormulaR1C1 = "=MaxWenn(R3C5:R" & LetzteZeile & "C5,R3C6:R" & LetzteZeile & "C6,RC[-1])"
End With
End Sub
(bitte poste vollständige Sub/Function inkl. "End Sub"/"End Function". "With" sollten auch mit "End With" abgeschlossen sein. Sonst muss jeder "nachbasteln". Poste den Code innerhalb des Code-Tags -zweiter blauer Knopf)
VG
Yal
Anzeige
AW: Variable in Formel einsetzen
27.09.2022 11:22:22
Daniel
Hi
noch ne Variante, die ich bei längeren Formeln bevorzuge, weil sie übersichtlicher ist vorallem wenn die Variable so wie hier mehrfach benötigt wird.
btw, Autofill ist hier nicht notwendig, man kann die Formel gleich in alle Zellen schreiben:

Dim LetzteZeile As Long
FO as string
With ActiveSheet
LetzteZeile = Cells(Rows.Count, 4).End(xlUp).Row
FO = "=MaxWenn(R3C5:RzzzC5,R3C6:RzzzC6,RC[-1])"
FO = Replace(FO, "zzz", LetzteZeile)
.Range("G2:G" & LetzteZeile).FormulaR1C1 = FO
End with
Beim Dummytext "zzz" muss man darauf achten, dass man eine Zeichenfolge verwendet, die ansonsten in der Formel nicht vorkommt, damit man sich diese nicht "versaut". Denkbar wäre auch sowas wie "_letzteZeile_"
Vorteilhaft wird diese Austauschmethode dann, wenn die Formeln länger werden, oder die Variable mehrfach in der Formel auftaucht, oder wenn Texte mit Anführungszeichen in der Formel benötigt werden, dann verliert man schnell die Übersicht wenn man da mit Verketten agiert.
btw ist MaxWenn eine von dir selbst geschriebene Funktion?
meines Wissens nach hat MS diese Funktionalität erst mit Version 2019 eingeführt und dann konsequenterweise auch nur als MaxWenns.
MaxWenn müsste also eine UDF sein, ansonsten müsste sie im Formelstring für R1C1 auch in Englisch als MaxIfs erscheinen.
Gruß Daniel
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige