Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Combobox ohne doppelte Einträge

Betrifft: Combobox ohne doppelte Einträge von: Klaus
Geschrieben am: 16.08.2004 13:05:42

Hallo liebes Forum
Ich möchte in einer UserformCombobox die Einträge einer Spalte OHNE doppelte Einträge auflisten und in eine neue Tabelle ausgeben.
Kann jemand helfen???
Dank schon einmal vorweg

Gruss Klaus

  


Betrifft: AW: Combobox ohne doppelte Einträge von: Hans W. Herber
Geschrieben am: 16.08.2004 13:08:45

Hallo Klaus,

folgende Seite meiner Excel-FAQ:
https://www.herber.de/mailing/161901h.htm
Gruss hans


  


Betrifft: AW: Combobox ohne doppelte Einträge von: Klaus
Geschrieben am: 16.08.2004 13:14:44

Hallo Hans
Vielen Dank für die schnelle Antwort. Aber, wie geht das mit dem ClassModule??
Gruss Klaus


  


Betrifft: AW: Combobox ohne doppelte Einträge von: Hans W. Herber
Geschrieben am: 16.08.2004 13:15:54

Hallo Klaus,

das Klassenmodul der UserForm ist gemeint, also das Modul, in dem sich die Ereignis-Prozeduren der UserForm befinden.

Gruss hans


  


Betrifft: AW: Combobox ohne doppelte Einträge von: Klaus Matzutat
Geschrieben am: 16.08.2004 13:27:09

Hallo Hans
Ups, das verstehe ich nicht. wo muss ich den Code eintragen?
Gruss Klaus


  


Betrifft: AW: Combobox ohne doppelte Einträge von: Hans W. Herber
Geschrieben am: 16.08.2004 13:29:32

Hallo Klaus,

wenn Du in der Entwicklungsumgebung auf die UserForm doppelklickst, gerätst Du dahin, wo Du hinmöchtest.

Gruss hans


  


Betrifft: AW: Combobox ohne doppelte Einträge von: Hans W. Herber
Geschrieben am: 16.08.2004 13:35:56

... mir kommt jetzt erst, dass eine Tabellenblatt-ComboBox gemeint ist. Meinen Beispielcode meinte ich natürlich sinngemäß und klinke mich aus.

Gruss hans


  


Betrifft: AW: Combobox ohne doppelte Einträge von: Klaus
Geschrieben am: 16.08.2004 13:38:11

Hallo Hans
nein, es war schon in einer userform
gruss klaus


  


Betrifft: AW: Combobox ohne doppelte Einträge von: ChrisL
Geschrieben am: 16.08.2004 13:11:13

Hi Klaus

Private Sub UserForm_Initialize()
Dim WS As Worksheet
Dim iZeile As Long

Set WS = Worksheets("Tabelle1")

For iZeile = 1 To WS.Range("A65536").End(xlUp).Row
    If WorksheetFunction.CountIf(WS.Range("A1:A" & iZeile), WS.Cells(iZeile, 1)) = 1 Then _
    ComboBox1.AddItem WS.Cells(iZeile, 1)
Next iZeile
End Sub



Gruss
Chris


  


Betrifft: AW: Combobox ohne doppelte Einträge von: Klaus
Geschrieben am: 16.08.2004 13:31:00

Hi Chris
Danke für deinen Tip. Nun steht aber in A1 die Überschrift, die wollte ich nicht mit einbeziehen. und wie geht es, wenn ich das ganze für Spalte "B" haben möchte??
Gruss Klaus


  


Betrifft: AW: Combobox ohne doppelte Einträge von: ChrisL
Geschrieben am: 16.08.2004 14:10:06

Hi Klaus

Private Sub UserForm_Initialize()
Dim WS As Worksheet
Dim iZeile As Long

Set WS = Worksheets("Tabelle1")

For iZeile = 2 To WS.Range("B65536").End(xlUp).Row
    If WorksheetFunction.CountIf(WS.Range("B2:B" & iZeile), WS.Cells(iZeile, 2)) = 1 Then _
    ComboBox1.AddItem WS.Cells(iZeile, 2)
Next iZeile
End Sub



gruss
Chris


  


Betrifft: AW: Combobox ohne doppelte Einträge von: Klaus
Geschrieben am: 16.08.2004 14:15:04

Hallo Chris
Vielen Dank für deien Antwort. Probiere es sofort aus.......
Gruss Klaus


  


Betrifft: AW: Combobox ohne doppelte Einträge von: Boris
Geschrieben am: 16.08.2004 13:23:41

Hi Klaus,

ohne die anderen Vorschläge getestet zu haben, könnte ich mir vorstellen, dass es bei sehr vielen Datensätzen schneller ist, mit dem Spezialfilter zu arbeiten.

Also erst Spezialfilter ohne Duplikate in irgendeine unbenutzte Spalte kopieren und dann darauf die RowSource-Eigenschaft anwenden (alternativ alle gefilterten Einträge "adden" und dann die Hilfsspalte sofort wieder löschen).

So in der Art:

Option Explicit

Private Sub UserForm_Initialize()
Dim lR As Long
Columns(256).Clear
lR = IIf([a65536] <> "", 65536, [a65536].End(xlUp).Row)
Range("A1:A" & lR).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[iv1], Unique:=True
lR = IIf([iv65536] <> "", 65536, [iv65536].End(xlUp).Row)
ComboBox1.RowSource = "IV1:IV" & lR
End Sub


Grüße Boris


  


Betrifft: AW: Combobox ohne doppelte Einträge von: Klaus
Geschrieben am: 16.08.2004 13:39:27

Hallo Boris
Danke für deine Hilfe. muss das alles jetzt mal ausprobieren....
Gruss Klaus


 

Beiträge aus den Excel-Beispielen zum Thema "Combobox ohne doppelte Einträge"