Liste ohne doppelte Werte in Combo einlesen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Liste ohne doppelte Werte in Combo einlesen von: Edwin
Geschrieben am: 04.03.2005 22:02:50

Hallo Leute,
es ist mal wieder soweit, ich komme nicht weiter.

Ich habe in den Beispielen bereits den fertigen/funktionierenden VBA gefunden, aber ich bekomme ihn nicht umgeschrieben.

In dem Beispiel wird die Combo im aktiven Sheet gefüllt.

Ich rufe aber im Sheet1 einen Dialog auf, in dem sich die Combo befindet. Die Combo soll mit Werten aus Sheet2 gefüllt werden.

Für Euch ist das bestimmt wieder 1x1, für mich ist es der Horror.

Hier der VBA aus dem Beispiel "Liste ohne doppelte Werte in Combo einlesen":


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
         cboNamen.AddItem Cells(iRow, 1)
      Else
         Err.Clear
      End If
      iRow = iRow + 1
   Loop
   On Error GoTo 0
   cboNamen.ListIndex = 0
End Sub


Gruß
Edwin
Bild


Betrifft: AW: Liste ohne doppelte Werte in Combo einlesen von: Bert
Geschrieben am: 04.03.2005 22:10:23

Hi,

einfach den Blattnamen angeben oder etwas einfacher so:

Option Explicit
Private Sub UserForm_Initialize()
   Dim col As New Collection, iRow As Integer, ws As Worksheet
   '----------------------------------------------------------
   Set ws = Sheets("Tabelle2") 'hier den Blattnamen anpassen
   '----------------------------------------------------------
   iRow = 1
   On Error Resume Next
   Do Until IsEmpty(Cells(iRow, 1))
      col.Add ws.Cells(iRow, 1), ws.Cells(iRow, 1)
      If Err = 0 Then
         cboNamen.AddItem ws.Cells(iRow, 1)
      Else
         Err.Clear
      End If
      iRow = iRow + 1
   Loop
   On Error GoTo 0
   cboNamen.ListIndex = 0
End Sub


Gruß Bert


Bild


Betrifft: Laufzeitfehler 380, Eigenschaft ListIndex ... von: Edwin
Geschrieben am: 04.03.2005 22:47:57

... konnte nicht gesetzt werden. Ungültiger Eigenschaftswert.

Hallo Bert,
vielen Dank für Deine Antwort. Jetzt hat es wieder klick gemacht.

Wenn ich allerdings "cboNamen.ListIndex = 0" nicht auskommentiere, dann kommt obiger Fehler.

Was muss ich ändern?

Gruß
Edwin


Bild


Betrifft: AW: Laufzeitfehler 380, Eigenschaft ListIndex ... von: Bert
Geschrieben am: 04.03.2005 23:03:00

Oops, ein Ws vergessen...

Option Explicit
Private Sub UserForm_Initialize()
   Dim col As New Collection, iRow As Integer, ws As Worksheet
   '----------------------------------------------------------
   Set ws = Sheets("Tabelle2") 'hier den Blattnamen anpassen
   '----------------------------------------------------------
   iRow = 1
   On Error Resume Next
   Do Until IsEmpty(ws.Cells(iRow, 1))
      col.Add ws.Cells(iRow, 1), ws.Cells(iRow, 1)
      If Err = 0 Then
         cboNamen.AddItem ws.Cells(iRow, 1)
      Else
         Err.Clear
      End If
      iRow = iRow + 1
   Loop
   On Error GoTo 0
   cboNamen.ListIndex = 0
End Sub


Gruß Bert


Bild


Betrifft: AW: Laufzeitfehler 380, Eigenschaft ListIndex ... von: Super danke!
Geschrieben am: 04.03.2005 23:17:12

Hallo Bert,
vielen Dank, Du hast mir sehr geholfen.
Gruß
Edwin


Bild


Betrifft: AW: Laufzeitfehler 380, Eigenschaft ListIndex ... von: Bert
Geschrieben am: 04.03.2005 23:20:34

...und ersetz iRow As Integer durch lRow As Long

Bert


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Liste ohne doppelte Werte in Combo einlesen"