ich habe folgende Tabelle:
Checked | ID | Version |
1 | 1 | |
1 | 2 | |
x | 1 | 3 |
2 | 4 | |
2 | 5 | |
x | 2 | 6 |
3 | 7 | |
3 | 8 | |
x | 3 | 9 |
x | 4 | 1 |
5 | 1 | |
x | 5 | 9 |
Beim Hinzufügen eines Elements mit neuerer Version soll nun in der Spalte Checked das x in die Zeile des neuen Elements gesetzt werden:
Checked | ID | Version |
1 | 1 | |
1 | 2 | |
1 | 3 | |
x | 1 | 4 |
2 | 4 | |
2 | 5 | |
x | 2 | 6 |
3 | 7 | |
3 | 8 | |
x | 3 | 9 |
x | 4 | 1 |
5 | 1 | |
x | 5 | 9 |
Zum ermitteln der größten Version habe ich folgendes versucht:
SearchRange.AutoFilter Field:=2, Criteria1:="1", Operator:=xlAnd
SearchRange.AutoFilter Field:=3, Criteria1:="1", Operator:=xlTop10Items, VisibleDropDown:= _
False
If SearchRange.SpecialCells(xlVisible).Count > 1 Then
For Each row In SearchRange.SpecialCells(xlVisible).Rows
row.Columns(1) = "x"
Next row
End If
Leider wirkt sich das zweite Kriterium nicht auf die Ergebnismenge des ersten aus, sondern auf die gesamte Tabelle.Wie kann ich von ID 1 die Zeil mit der maximalen Version erhalten und das wenn möglich ohne jedesmal durch alle Zellen iterieren zu müssen?
Viele Grüße
Erik