Hallo energun,
ich bin leider nicht früher dazu gekommen, dir zu antworten. Auch ich habe etwas gebastelt: eine benutzerdefinierte Function:
Public Function MHD(rngUeberschrift As Range, lngRang As Long) As Variant
Dim i As Long
Dim z As Long
Dim lngZaehler As Long
Dim varFeld As Variant
Dim lngAnzahl As Long
Dim bExists As Boolean
Dim lngZeile As Long
Dim varWerte As Variant
Dim rngZelle As Range
Dim lngFZaehler As Long
'Zeile aus der die Funtion aufgerufen wird
lngZeile = Application.Caller.Row
ReDim varWerte(rngUeberschrift.Columns.Count)
'Daten des MHD einlesen
For Each rngZelle In rngUeberschrift
If Left(rngZelle, 3) = "MHD" Then
If Cells(lngZeile, rngZelle.Column) <> "" Then
lngZaehler = lngZaehler + 1
varWerte(lngZaehler) = Cells(lngZeile, rngZelle.Column)
End If
End If
Next rngZelle
ReDim varFeld(lngZaehler)
varFeld(1) = varWerte(1)
lngFZaehler = 1
For i = 2 To lngZaehler
bExists = False
For z = LBound(varFeld) To UBound(varFeld)
If varFeld(z) = varWerte(i) Then
bExists = True
Exit For
End If
Next z
If bExists = False Then
lngFZaehler = lngFZaehler + 1
varFeld(lngFZaehler) = varWerte(i)
End If
Next i
'Sortieren
For z = lngFZaehler - 1 To LBound(varFeld) Step -1
For i = LBound(varFeld) To z
If varFeld(i) > varFeld(i + 1) Then
varWert = varFeld(i)
varFeld(i) = varFeld(i + 1)
varFeld(i + 1) = varWert
End If
Next i
Next z
MHD = varFeld(lngRang)
End Function
Kopiere die Function in ein allgemeines Modul deiner Arbeitsmappe.
Der Aufruf erfolgt über = MHD(Bereich der Überschrift, Rang)
Bereich der Überschrift: Markiere den Bereich, in dem die Überschriften stehen
Rang: eine Zahl ab 1 (1 = kleinstes Datum)
Bsp: =MHD(B1:O1;1) ergibt das Kleinste Datum der MHD's im Bereich der Spalten B bis O der Zeile, in der die Formel steht.
Du kannst es ja mal probieren.
Gruß
M.O.