Anzeige
Archiv - Navigation
528to532
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
528to532
528to532
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Combo doppelte einträge in liste vermeiden

Combo doppelte einträge in liste vermeiden
11.12.2004 16:28:08
Drazen
Hallo,
mit folgendem Code:
Sheets("AN").Activate
Dim N As String
Dim az As Integer
Dim B
N = ComboBox5
With Sheets("AN").Columns(1)
Set B = .Find(What:=N, LookIn:=xlValues, LookAt:=xlWhole)
az = .Cells(Rows.Count, 1).End(xlUp).Row
If B Is Nothing Then .Cells(az + 1, 1) = N
Range(.Cells(2, 1), .Cells(az + 2, 1)).Sort Key1:=.Cells(2, 1)
End With
übergebe ich einen Eintrag der Combo in die Tabelle "AN", sortiere danach und alles prima, aber wie vermeide ich dass wenn ich einen Eitrag der schon in der Liste "AN" vorhanden ist in die Combo Wähle, der Eintrag dann nicht nochmals in die Liste übergeben wird?
Die Combo wird wie folgt gefüllt (alles passiert in einer UF mit mehreren Combos):
ComboBox5.RowSource = Sheets("AN").Range("A2:A22").Address(external:=True)
ComboBox5.Value = Sheets("AN").Range("A1")
Ist sicher einfach für Profis, ich komme einfach nicht mehr weiter mit meinem rumtesten...
Grüsse
Drazen

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

Betreff
Datum
Anwender
Anzeige
AW: Combo doppelte einträge in liste vermeiden
11.12.2004 17:01:23
Hajo_Zi
Hallo Drazen,
warum in eine Tabelle schreiben? Sortiere das doch in einem Array und schreibe es dann in die Combobox. Hier mal ein Beispiel für eine Listbox, aber ComboBox ist analog.

Option Explicit
'   erstellt von Hajo.Ziplies@web.de
Private Sub UserForm_Initialize()
Dim StListe() As String
Dim Loletzte As Long
Dim LoI As Long
Loletzte = 65536
If Range("A65536") = "" Then Loletzte = Range("A65536").End(xlUp).Row
'Array Dimensionieren
ReDim Preserve StListe(1 To Loletzte)
For LoI = 2 To Loletzte
StListe(LoI - 1) = Cells(LoI, 1)
Next LoI
'   Liste  sortieren
Sort_A_Z StListe, LBound(StListe), UBound(StListe)  ' Lbound kleinster Wert,UBound Größter Wert
'   Liste in Listbox übertragen ohne Doppelte
ListBox1.AddItem StListe(1)
For LoI = 2 To Loletzte
If StListe(LoI) <> StListe(LoI - 1) Then ListBox1.AddItem StListe(LoI)
Next LoI
End Sub
Public Sub Sort_Z_A(SortArray, L, R)
'   sortieren von Z bis A
'   von GerdZ Herber.de
Dim I, J, x, y
I = L
J = R
x = SortArray((L + R) / 2)
While (I <= J)
While (SortArray(I) < x And I < R)
I = I + 1
Wend
While (x < SortArray(J) And J > L)
J = J - 1
Wend
If (I <= J) Then
y = SortArray(I)
SortArray(I) = SortArray(J)
SortArray(J) = y
I = I + 1
J = J - 1
End If
Wend
If (L < J) Then Call Sort_Z_A(SortArray, L, J)
If (I < R) Then Call Sort_Z_A(SortArray, I, R)
End Sub
Public Sub Sort_A_Z(SortArray, L, R)
'   sortieren von A bis Z
'   von GerdZ Herber.de
Dim I, J, x, y
I = L
J = R
x = SortArray((L + R) / 2)
While (I <= J)
While (SortArray(I) > x And I < R)
I = I + 1
Wend
While (x > SortArray(J) And J > L)
J = J - 1
Wend
If (I <= J) Then
y = SortArray(I)
SortArray(I) = SortArray(J)
SortArray(J) = y
I = I + 1
J = J - 1
End If
Wend
If (L < J) Then Call Sort_A_Z(SortArray, L, J)
If (I < R) Then Call Sort_A_Z(SortArray, I, R)
End Sub

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Anzeige
AW: Combo doppelte einträge in liste vermeiden
11.12.2004 23:14:53
Drazen
Hi Hajo,
haste wieder mal ganz geholfen, die Sache bongt wie verrücktm vielen Dank!!!
Grüsse
Drazen

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige