Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1360to1364
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Listview dopplete entfernen

Listview dopplete entfernen
14.05.2014 16:12:13
Daniel
Hallo,
ich habe eine textbox als Suchfeld für Daten genutzt. Wenn ich nun Buchstaben vorgebe öffnet sich eine Userform mit Listview. In dem Listview kann ich dann einen Namen auswählen, leider erscheinen einige Namen in der Ausgangsspalte doppelt. In der List sollten Sie aber nur einmal erscheinen.
Nach mehreren erfolglosen Versuchen würde ich mich über Hilfe freuen. Meine VBA Kenntnisse sind nicht sonderlich gut, deshalb bitte ich da um ein wenig Verständnis.
Danke

Sub Name()
searchstring = TextBox1.Value
Dim resultarray(1 To 500) As String
t = 1
For i = 2 To 500
If InStr(1, Sheets("Tabelle1").Cells(i, 8), searchstring, vbTextCompare)  0 Then
resultarray(t) = Sheets("Tabelle1").Cells(i, 8)
t = t + 1
End If
Next i
With UserForm1.ListView1
.FullRowSelect = True
.View = lvwReport
.Sorted = True
.SortOrder = lvwAscending
.LabelEdit = lvwManual
.ColumnHeaders.Add , , "Name", 400
End With
i = 1
While Not resultarray(i) = ""
Set lvRes = UserForm1.ListView1.ListItems.Add(, , resultarray(i))
i = i + 1
Wend
UserForm1.Show False
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listview dopplete entfernen
14.05.2014 16:22:09
Rudi
Hallo,
Name solltest du nicht als Namen der Sub nehmen, da ein VBA-Schlüsselwort (Eigenschaft)
Sub Namen()
Dim resultarray(1 To 500) As String
Dim t As Integer, i As Integer
searchstring = TextBox1.Value
With Sheets("Tabelle1")
For i = 2 To 500
If InStr(1, .Cells(i, 8), searchstring, vbTextCompare)  0 Then
If WorksheetFunction.CountIf(.Range(.Cells(2, 8), .Cells(i, 8)), .Cells(i, 8)) = 1 Then
t = t + 1
resultarray(t) = Sheets("Tabelle1").Cells(i, 8)
End If
End If
Next i
End With
With UserForm1.ListView1
.FullRowSelect = True
.View = lvwReport
.Sorted = True
.SortOrder = lvwAscending
.LabelEdit = lvwManual
.ColumnHeaders.Add , , "Name", 400
End With
For i = 1 To t
Set lvRes = UserForm1.ListView1.ListItems.Add(, , resultarray(i))
Next i
UserForm1.Show False
End Sub
Gruß
Rudi

Anzeige
AW: Listview dopplete entfernen
14.05.2014 18:06:16
Daniel
Perfekt TAUSEND DANK!!!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige