Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ComboBox

Forumthread: ComboBox

ComboBox
24.06.2003 11:49:14
Florian
Hallo zusammen,
ich weiß, dass es schon 100 Leute gefragt haben, aber ich finde es trotzdem nicht mehr in der Recherche:
Ich möchte in eine Combobox Werte hinzufügen, aber vermeiden, dass es zu doppelten einträgen kommt.
Mein Code lautet folgendermaßen (incl. doppelte)

Private Sub ComboBox2_Change()
UserForm1.ComboBox3.Clear
Dim i As Integer
For i = 3 To 100
If UserForm1.ComboBox2.Text = ActiveSheet.Range("b" & i).Value Then
ComboBox3.AddItem ActiveSheet.Cells(i, 3)
End If
Next i
End Sub
Könnte mir bitte jemand helfen, dieses Problem zu lösen?
Gruß aus Aachen,
Florian

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: ComboBox
24.06.2003 11:54:16
sergiesam

Hi,

lass mich das kurz erläutern, ob ich dich richtig verstanden habe:

1) du hast 2 comboboxen (combobox2 und 3)
2) du gibts einen wert in combobox2 ein
3) wenn dieser wert in der liste von b3:b100 gefunden wird,
4) wird er in Combobox3 angefügt.

und du willst nun, dass keine doppelten werte eingetragen werden.
Stimmts soweit?
Sam

Anzeige
Re: ComboBox
24.06.2003 11:56:50
Florian

Hallo Sam,
das ist soweit korrekt. der Code funktioniert auch, aber es werden eben alle Inhalte von Spalte b eingefügt und nicht, so wie ich möchte, jeder auftauchende Wert nur einmal.
Gruß,
Florian

Re: ComboBox
24.06.2003 12:06:22
sergiesam

Hi,

bau einfach eine zusätzliche kontrolle ein:



Anzeige
Re: ComboBox
24.06.2003 12:26:49
Florian

Hallo Sam,
ich glaube, ich hab zu schnell gesagt, dass du es richtig verstanden hast.
Ich habe eine Tabelle mit 4 Spalten, ein Userform mit 3 ComboBoxen.
Ich lese Combo1 automatisch ein über:
Private Sub UserForm_Initialize()
Dim col As New Collection
Dim irow As Integer
irow = 3
On Error Resume Next
Do Until IsEmpty(ActiveSheet.Cells(irow, 1))
col.Add ActiveSheet.Cells(irow, 1), ActiveSheet.Cells(irow, 1)
If Err = 0 Then
ComboBox1.AddItem ActiveSheet.Cells(irow, 1)
Else
Err.Clear
End If
irow = irow + 1
Loop
On Error GoTo 0
ComboBox1.ListIndex = 0
End Sub
danach wähle ich ein Item in ComboBox2 aus und möchte, dass hierauf in Combobox3 nur die, in Spalte C meiner Tabelle stehenden Werte, die die eigenschaften aus ComBo1 und 2 erfüllen, ohne doppelte Nennungen erscheinen.
Mein in der Zwischenzeit entstandender Code sieht s.u. aus,
nimmt auch keine doppelten mehr, aber dafür alle in Spalte C auftauchenden werte.?
Danke, dass Du überhaupt antwortest,
Florian

Private Sub ComboBox2_Change()
UserForm1.ComboBox3.Clear
Dim i As Integer
For i = 3 To 100
If UserForm1.ComboBox2.Text = ActiveSheet.Range("b" & i).Value Then
Dim col As New Collection

On Error Resume Next
Do Until IsEmpty(ActiveSheet.Cells(i, 3))
col.Add ActiveSheet.Cells(i, 3), ActiveSheet.Cells(i, 3)
If Err = 0 Then
ComboBox3.AddItem ActiveSheet.Cells(i, 3)
Else
Err.Clear
End If
i = i + 1
Loop
On Error GoTo 0
End If
Next i
End Sub

Anzeige
Re: ComboBox
24.06.2003 12:52:19
Florian

Hallo Sam,
ich habs gefunden. war einfach eine Schleife zuviel.
Danke für Deine Mühe!
Gruß aus Aachen,
Florian


Private Sub ComboBox2_Change()
UserForm1.ComboBox3.Clear
Dim i As Integer
For i = 3 To 100
If UserForm1.ComboBox2.Text = ActiveSheet.Range("b" & i).Value Then
Dim col As New Collection

On Error Resume Next
col.Add ActiveSheet.Cells(i, 3), ActiveSheet.Cells(i, 3)
If Err = 0 Then
ComboBox3.AddItem ActiveSheet.Cells(i, 3)
Else
Err.Clear
End If
On Error GoTo 0
End If
Next i
End Sub

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige