PDA

Vollständige Version anzeigen : ComboBox Updaten


Tuereintreter
06.09.2011, 11:39
Moin,

habe im Moment ein kleines Problem. Bei folgendem Code versuche ich zu überprüfen, ob der vom Benutzer eingegebene Wert in einer CB schon in der Auswahl existiert. Wenn nicht soll er hinzugefügt werden. Das klappt auch generell. Wenn ich nun aber den ersten Eintrag wieder wähle, wird die Änderung nicht übernommen, wohl aber bei den Folgenden. Weiter fügt er fröhlich auch Doppeleinträge hinzu obwohl ich überprüfe ob der Wert schon in der Auflistung vorkommt.
Vielleicht muss mich ja nur jemand mit der Nase draufstupsen.

Private Sub cmd_Add_Click()

Dim i, Counter As Single
With UserForm1
If .cB_Einheit.ListCount <> 0 Then
.cB_Einheit.SetFocus
For i = 0 To .cB_Einheit.ListCount
If .cB_Einheit.List(0, i) = .cB_Einheit.Value Then
Counter = 1
Exit For
End If
Next
End If
If Counter = 0 Then
.cB_Einheit.AddItem (.cB_Einheit.Value)
End If
If .cB_Einheit.ListCount = 0 Then .cB_Einheit.AddItem (.cB_Einheit.Value)
If .cB_Menge.ListCount = 0 Then .cB_Menge.AddItem (Format(.cB_Menge.Value, "#,##0.00"))
.tB_GPreis.Text = CStr(Format(CCur(.cB_Menge.Value) * CInt(.tB_EPreis.Text), "#,##0.00 €"))
If .lB_PosOverview.ListIndex = -1 Then
.lB_PosOverview.AddItem (.tB_Beschreibung.Text)
.lB_PosOverview.List(.lB_PosOverview.ListCount - 1, 1) = .cB_Einheit.Value
.lB_PosOverview.List(.lB_PosOverview.ListCount - 1, 2) = Format(.cB_Menge.Value, "#,##0.00")
.lB_PosOverview.List(.lB_PosOverview.ListCount - 1, 3) = Format(.tB_EPreis.Text, "#,##0.00 €")
.lB_PosOverview.List(.lB_PosOverview.ListCount - 1, 4) = .tB_GPreis.Text
Else
.lB_PosOverview.List(.lB_PosOverview.ListIndex, 0) = .tB_Beschreibung.Text
.lB_PosOverview.List(.lB_PosOverview.ListIndex, 1) = .cB_Einheit.List(.cB_Einheit.ListCount - 1, 0)
.lB_PosOverview.List(.lB_PosOverview.ListIndex, 2) = Format(.cB_Menge.Text, "#,##0.00")
.lB_PosOverview.List(.lB_PosOverview.ListIndex, 3) = Format(.tB_EPreis.Text, "#,##0.00 €")
.lB_PosOverview.List(.lB_PosOverview.ListIndex, 4) = .tB_GPreis.Text
End If
End With


Danke im vorraus für den Schubser !