1.1k Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.3k Punkte)
Hallo,

habe einen einfachen Code, der mir die Anzahl unterschiedlicher Text-Werte in Spalte "B" ausrechnet:
z.B.:
3.
3.
4.
4.
4.
5.
5.
Das Ergebnis wäre in diesem Beispiel =3.
Der Code funktioniert aber nur, solange die Werte wie oben sortiert sind.

Sub Anzahl_Trainingstage()
' Liste muss sortiert sein

Dim n, anzTage, var
var = Cells(2, 2)
anzTage = 1
For n = 2 To Cells(Rows.Count, 6).End(xlUp).Row

If var = Cells(n, 2) Then

Else
var = Cells(n, 2)
anzTage = anzTage + 1
End If

Next

MsgBox anzTage

End Sub

Wie müßte der Code nun abgeändert werden, damit er auch für unsortierte Daten funktioniert?
Weiß jemand Rat?
Gruß Andreas

2 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Andreas,

Option Explicit

Sub Anzahl_Trainingstage()
' Liste muss sortiert sein
Dim n, anzTage, var
var = Cells(2, 2)
anzTage = 0
For n = 2 To Cells(Rows.Count, 6).End(xlUp).Row
If Application.CountIf(Range(Cells(2, 6), Cells(n, 6)), Cells(n, 6)) = 1 Then
anzTage = anzTage + 1
End If
Next
MsgBox anzTage
End Sub


Gruß Hajo
0 Punkte
Beantwortet von ahorn38 Experte (3.3k Punkte)
Danke Hajo für die schnelle und funktionierende Hilfe für mein Problem!!!
Schönen Abend!
Andreas
...