Hallo Lino,
folgendes Makro schreibt den Wert, der am häugsten in den Spalten E und G vorkommt, in die zweite Zelle unterhalb des letzten Eintrag der jeweiligen Spalte:
z = Array(5, 7)
For t = 0 To UBound(z)
j = Cells(Rows.Count, z(t)).End(xlUp).Row
ReDim e(j): For i = 1 To j: e(i) = Cells(i, z(t)): Next i
Set SL = CreateObject("System.Collections.SortedList")
If j > 246 Then SL.Capacity = j + 10 Else SL.Capacity = 256
For i = 0 To j - 1: If e(i) <> "" Then SL(e(i)) = ""
Next i
m = 0: fm = ""
For i = 0 To SL.Count - 1
c = SL.GetKey(i)
Set R = ActiveSheet.Columns(z(t)).Find(What:=c, LookIn:=xlValues, lookat:=xlWhole)
If Not R Is Nothing Then erstes = R.Row: fe = 1
Do
Set R = ActiveSheet.Columns(z(t)).FindNext(After:=R)
fe = fe + 1
If R.Row <= erstes Then Exit Do
Loop While R.Row > erstes
If fe = m Then fm = fm + " und " + c
If fe > m Then fm = c: m = fe
Next i
Cells(j + 2, z(t)) = fm
Next t
Gruß
Holger
|