ich hab eine Excel zusammengebastelt und diese braucht mittlerweile leider Ewigkeiten zum rechnen... daher will ich diese jetz mit VBA etwas verbesser :) Problem ich habe keinen Dunst von VBA und versuche mich anhand von Foren und Büchern durchzuschlagen - dabei kommm ich leider schnell an meine Grenzen - ich hoffe ihr könnt mir helfen!
Was ist mein Ziel: Ich will eine Formel schreiben die über einige Tausend Zeilen arbeitet. _ Dabei soll aus diesem Datensatz nach 2 Kriterien abgeglichen werden, wobei das eine Kriterium konstant bleibt ("TEXT") und das andere von 100 bis 100+N (nicht lückenlos) geht [sprich eine schleife]. Dabei können Treffer jedoch doppelt vorkommen und es soll daher der MAX-Wert genommen werden (letzte Zeile in der der Wert gefunden wurde). Tja soweit schaffe ich es leider noch nicht mal das Ganze zu schreiben (siehe Ansatz) und es geht noch weiter... Das Ganze muss noch ein zweites mal durchgeführt werden wobei jetzt das zweite Kriterium (zuvor "TEXT" jetzt "TEXT2" heißt) jetzt anders ist. Zwischen diesen Zeilen soll nun die Summe gebildet werden.... Ich hoffe es ist etwas verständlich
Sub Test()
Dim WB As Workbook
Dim Daten As Worksheet
Dim wsRefNr As Worksheet
Dim RefNrsDat As Variant
Dim RefNrs As Range
Set WB = ThisWorkbook
Set wsDaten = WB.Worksheets("Datensatz")
Set wsRefNr = WB.Worksheets("Referenznummern")
Set DatRefNrs = wsDaten.Range("A3:A" & wsDaten.Cells(Rows.Count, 1).End(xlUp).Row)
For i = wsRefNr.Cells(2, 1) To wsRefNr.Cells(wsRefNr.Cells(Rows.Count, 1).End(xlUp).Row, 1)
With Application.WorksheetFunction
t = .Max(.Index(DatRefNrs, .Match(i, DatRefNrs, 0), 1).Row)
End With
MsgBox t
Next
End Sub
Aufbau Tabellenblatt Referenznummern:
RefNr.
100
101
103
106...
Aufbau Tabellenblatt Datensatz (ohne Leerzeilen):
RefNr.___2. Krit___Summenbereich
100________TEXT________1
100________aaaa________6
100________aaaa________#
100________TEXT________#....
100________TEXT2
101________aaaa
103________TEXT
103________aaaa
103________TEXT2
Mir wäre schon viel geholfen wenn jmd. weiß wie ich es hinbekomme das mir die Max Zeile ausgespuckt wird und nicht die Erste wo er das Kriterium findet! Derzeit würde der Code klappen um die Zeile des 1. Matches für jede RefNr zu bekommen (wenn RefNrsDat As Range definiert wird)
Schonmal Danke
Grüße Matthias