Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
228to232
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
228to232
228to232
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Main Sort-Code funzt nicht...

Main Sort-Code funzt nicht...
06.03.2003 19:23:43
Claus
Hi Leute!

Was mache ich bloß falsch? Ich habe in Spalte "A" verschiedene Daten (nicht nur Zahlen) die sich ab und zu wiederholen.

A1
--------
Hund
Katze
Hund
Hund
Katze

Diese Daten sollen in eine ComboBox eingelesen werden und sie von dort weiterzuverarbeiten...In der ComboBox sollen jedoch keine Doppelnennungen auftauschen (also nur einmal Hund und Katze)!!!
In Excel kann man praktischer Weise so eine Funktion direkt benutzen.
Klickt mal in eurem Excel auf Daten, Filter, Autofilter...Sowas will ich in der ComboBox, die auf einer UserForm plaziert ist, haben....Hier mein Code (der leider (noch) nicht funzt)...

Private Sub UserForm_Initialize()

Dim zellenanzahl%
zellenanzahl = Cells(Cells.Rows.Count, 7).End(xlUp).Row
With Worksheets("VN Position")
ComboBox1.List = .Selection.ColumnDifferences("G6:G" & zellenanzahl).Value
End With
ComboBox1.ListIndex = 0

End Sub

Tja...was nun? URs hatte da mal eine Lösung angeboten mit Zellen kopieren, doppelte löschen usw. Die klappt so leider nicht...Ist auch nicht sooo elegant...



4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Main Sort-Code funzt nicht...
06.03.2003 20:03:43
Lutz

Hallo Claus,

hier ein Beispiel, um alle in Spalte A vorkommenden Werte/Daten ohne doppelte Einträge in eine ComboBox einzulesen:

Private Sub UserForm_Initialize()
Dim col As New Collection
Dim iRow As Integer
iRow = 1
On Error Resume Next
Do Until IsEmpty(Cells(iRow, 1))
col.Add Cells(iRow, 1), Cells(iRow, 1)
If Err = 0 Then
ComboBox1.AddItem Cells(iRow, 1)
Else
Err.Clear
End If
iRow = iRow + 1
Loop
On Error GoTo 0
ComboBox1.ListIndex = 0
End Sub


Gruß
Lutz

Anzeige
Wow!!! Klappt super!!
06.03.2003 20:34:23
Claus

Danke

Eine Frage noch...
06.03.2003 21:58:37
Claus

Kann man diesen wirklich vorzüglichen Code noch soweit verändern, dass die ComboBox-Inhalte unabhängig vom Tabellenblatt alphabetisch sortiert werden?
Geht das? Würde das Suchen in der ComboBox noch stark verbessern...

Private Sub UserForm_Initialize()
Dim col As New Collection
Dim iRow As Integer
iRow = 1
On Error Resume Next
Do Until IsEmpty(Cells(iRow, 1))
col.Add Cells(iRow, 1), Cells(iRow, 1)
If Err = 0 Then
ComboBox1.AddItem Cells(iRow, 1)
Else
Err.Clear
End If
iRow = iRow + 1
Loop
On Error GoTo 0
ComboBox1.ListIndex = 0
End Sub


Anzeige
Re: Eine Frage noch...
07.03.2003 07:58:34
Lutz

Hallo Claus,

eines habe ich in diesem tollen Forum sofort gelernt: möglich ist alles...

Hier die Lösung für Dein Problem:

Private Sub UserForm_Initialize()
Dim col As New Collection
Dim iRow As Integer
iRow = 8
On Error Resume Next
Do Until IsEmpty(Cells(iRow, 1))
col.Add Cells(iRow, 1), Cells(iRow, 1)
If Err = 0 Then
ComboBox1.AddItem Cells(iRow, 1)
Else
Err.Clear
End If
iRow = iRow + 1
Loop
On Error GoTo 0
ComboBox1.ListIndex = 0
SortierenCombobox
End Sub


'In ein Modul:

Sub SortierenCombobox()
Dim i_Erster As Integer
Dim i_Letzter As Integer
Dim i_Aktuell As Integer
Dim i_Nächster As Integer
Dim s_buffer As String

With UserForm1.ComboBox1
If .ListCount = 0 Then Exit Sub
i_Erster = 0
i_Letzter = .ListCount - 1
For i_Aktuell = i_Erster To i_Letzter
For i_Nächster = i_Aktuell + 1 To i_Letzter
If .List(i_Aktuell) > .List(i_Nächster) Then
s_buffer = .List(i_Nächster)
.List(i_Nächster) = .List(i_Aktuell)
.List(i_Aktuell) = s_buffer
End If
Next i_Nächster
Next i_Aktuell
End With
End Sub


Gruß
Lutz


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige