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

VBA, Dreifachschleife

VBA, Dreifachschleife
06.03.2022 16:37:24
Chris
Hallo zusammen,
ich habe schon gestern einen Beitrag erstellt, allerdings ist der nicht durchgekommen.
Also ich brauche eine Schleife mit drei Variablen. Dabei sollen zwei Variablen, hier "v" und "a" gleichzeitig erhöht werden, nachdem "i" durchgelaufen ist.
Meine bisherigen Versuche mit "Next a,v"; "Next a & v" oder "Next a & Next v" sind fehlgeschlagen.
Die Möglichkeit einen Parameter "a" oder "v" wegzulassen und dann eine neue For-Schleife zu erstellen geht zwar, allerdings hat der Bereich a oder v 13 Wiederholungen und Korrekturen sind dann eben aufwendig bei 13 For-Schleifen.
Das ist meine bisherige Programmierung:
Das ist nur ein Test

Sub und nicht der endgültige!
Da auf der Arbeit mit Excel 2013 gearbeitet wird, gibt es die Funktion maxwenns nicht. Ansonsten gäbe es das ganze Problem nicht.
Danke im voraus für die Hilfe!!!

Sub t2()
Dim i As Double
Dim a As Double
Dim v As Double
For v = 2 To 3
For a = 1 To 2
For i = 1 To 6
Range("M" & i + 1).Value = IIf(Range("A" & i + 1) = a, Range("B" & i + 1), "")
Range("F" & v).Value = WorksheetFunction.Max(Range("M2", "M10"))
Next i
Range("M2", "M10").Clear
Next a, v
End Sub
Gruß
Chris

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA, Dreifachschleife
06.03.2022 17:29:44
RPP63
Moin!

Da auf der Arbeit mit Excel 2013 gearbeitet wird, gibt es die Funktion maxwenns nicht.
Das ist wohl wahr, aber kein unlösbares Problem.
Dann mit Matrixformel, die aber nicht über ganze Spalten gehen sollte (Performance!).
Grob so:
 ABCDE
1Wert1Wert2 MAXWENNSMAX(WENN)
2363776 817817
3699801   
4824277   
5107635   
6265862   
7808445   
8645186   
9281554   
10552817   

ZelleFormel
D2=MAXWENNS(B:B;A:A;">=500")
E2{=MAX(WENN(A2:A10>=500;B2:B10))}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.

Gruß Ralf
Anzeige
AW: VBA, Dreifachschleife
07.03.2022 09:23:52
Chris
Ja, das ist ne gute Alternative.
Aber eine Möglichkeit wie ich das ursprünglich geplante hatte, zwei Variablen bei der For-Schleife gleichzeitig zu erhöhen funktioniert nicht!?
Gruß
Chris
AW: VBA, Dreifachschleife
07.03.2022 19:07:11
Chris
Die Frage ist noch offen,
hab ich vergessen so zu markieren!
AW: VBA, Dreifachschleife
07.03.2022 21:33:10
Yal
Moin,
zwar bekomme ich durch die Antwort von Ralf ein Bischen Licht in der Dickicht der Frage, aber die Verbindung zwischen Maxwenn und den VBA-Code könnte ich immer noch nicht herstellen.
Man kann die Funktion nachprogrammieren:

Public Function MaxWenn(Wertebereich, Suchbereich, Bedingung)
Dim Z
Dim R_Offset, C_Offset
Dim erg
R_Offset = Suchbereich.Range("A1").Row - Wertebereich.Range("A1").Row
C_Offset = Suchbereich.Range("A1").Column - Wertebereich.Range("A1").Column
For Each Z In Wertebereich
If Evaluate(Z.Offset(R_Offset, C_Offset) & Bedingung) Then erg = WorksheetFunction.Max(erg, Z.Value)
Next
MaxWenn = erg
End Function
Es funktioniert aber nur wenn man einen Vergleichzeichen (auch für Gleichheit) in der Bedingung eingibt:

=MaxWenn(B1:B12;A1:A12;">7000")
oder
=MaxWenn(B1:B12;A1:A12;"=7000")
VG
Yal
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige