AW: WERTE ZÄHLEN VERGLEICHEN
29.11.2007 13:28:00
kv21
Hallo
Alle Namen auflisten und zählen habe ich in einem kurzen Code geschrieben. Ausgelesen wird aus Tabellenblatt "Tabelle". Das Ergebnis kommt in Tabellenblatt "Namenliste". Muss man bei Bedarf dann ändern.
Sub NamenFiltern()
'Schreibt alle Namen aus dem Bereich B1:F4 in das Tabellenblatt "Namenliste", Spalte 1.
'Zählt alle vorkommenden Namen. Eintrag in das Tabellenblatt "Namenliste", Spalte 2.
'Tabellenblatt "Namenliste" wird nicht gelöscht!
Dim intLetzteZelle As Integer
Dim neuerBereich As Range
Dim strName As String
Dim i As Integer
Dim x As Integer
Dim intZeileName As Integer
Dim Vorh As Integer
Dim intZaehler As Integer
Worksheets("Tabelle").Activate
Set neuerBereich = Range("B1", ActiveCell.SpecialCells(xlLastCell))
intLetzteZelle = neuerBereich.Cells.Count
'Namen auslesen
strName = neuerBereich.Cells(1) 'ersten Namen auslesen
Worksheets("Namenliste").Cells(1, 1) = strName 'ersten Namen eintragen
intZaehler = Application.WorksheetFunction.CountIf(neuerBereich, strName) 'ersten Namen zä _
hlen
Worksheets("Namenliste").Cells(1, 2) = intZaehler 'Summe ersten Namen eintragen
intZeileName = 2
For i = 2 To intLetzteZelle
strName = neuerBereich.Cells(i) 'Namen auslesen
Vorh = 0
For x = 1 To i - 1
If neuerBereich.Cells(i) = neuerBereich.Cells(x) Then
Vorh = 1
End If
Next x
If Vorh = 0 Then
Worksheets("Namenliste").Cells(intZeileName, 1) = strName 'Namen eintragen
intZaehler = Application.WorksheetFunction.CountIf(neuerBereich, strName) 'Namen zä _
hlen
Worksheets("Namenliste").Cells(intZeileName, 2) = intZaehler 'Summe Namen eintragen
intZeileName = intZeileName + 1
End If
Next i
End Sub
LG Karl