Eigenartiges Comboboxverhalten
Betrifft: Eigenartiges Comboboxverhalten
von: Michael Schneyder
Geschrieben am: 11.09.2014 09:03:51
Hallo aus Wien,
mein Problem mit den API-Funktionen konnte ich inzwischen lösen - war ein Problem an ganz anderer Stelle. Egal!
Meine neue Frage betrifft ein Problem, wo ich seit Stunden einfach nicht schlau werde:
Ich habe eine Combobox die nach der Überprüfung von bestimmten Einträgen in einer Liste mit verschiedenen Inhalten befüllt wird (z.B. wenn ein Eintrag in der Liste bereits vorhanden ist, darf er in der ComboBox nicht mehr aufscheinen).
Das funktioniert auch gut. Ich steuere die Box zunächst mit dem Ereignis DropButtonClick an und führe dann die Überprüfung und Neubefüllung der Box aus.
Wähle ich nun ein Element der Box aus löst das logischerweise ein Change-Ereignis aus.
Und jetzt das Eigenartige:
Der ausgewählte Eintrag wird mir in der Box nach Schließen des Auswahlfensters nicht angezeigt. Stelle ich jedoch eine MsgBox an den Beginn des Events zeigt er mir alles perfekt an. Wie kann eine MsgBox entscheidend sein, ob in einer Combobox ein Inhalt aufscheint oder nicht???
Hier der Code dazu:
Private Sub ComboBox1_Fill()
LangKat ("ZAHLUNGSART")
ZACount1 = 0
ZACount2 = 0
'Änderung bei vorhandener Barzahlung
For i = 0 To Listbox1.ListCount - 1
If Me.Listbox1.List(i, 1) = Worksheets("Language").Cells(LangKatRow + 5, LangIndex). _
Value Then
ZACount1 = 1
End If
Next i
'Änderung bei vorhandener Banküberweisung
For i = 0 To Listbox1.ListCount - 1
If Me.Listbox1.List(i, 1) = Worksheets("Language").Cells(LangKatRow + 6, LangIndex). _
Value Then
ZACount2 = 2
End If
Next i
NoEvent = True
Me.ComboBox1.Clear
NoEvent = False
For i = 5 To 8
If i = 5 And ZACount1 = 1 Then GoTo weiter
If i = 6 And ZACount2 = 2 Then GoTo weiter
Me.ComboBox1.AddItem Worksheets("Language").Cells(LangKatRow + i, LangIndex).Value
weiter:
Next i
End Sub
Private Sub ComboBox1_Change()
If NoEvent Then Exit Sub
MsgBox("?"),vbsystemmodal
LangKat ("ZAHLUNGSART")
'Freischalten Combobox2
If ComboBox1.Value = Worksheets("Language").Cells(LangKatRow + 7, LangIndex).Value Or _
ComboBox1.Value = Worksheets("Language").Cells(LangKatRow + 8, LangIndex).Value Then
ComboBox2.Enabled = True
ComboBox2.BackColor = &H80000005
'Freischalten des Speicherknopfes
If TextBox1.Text <> "" And ComboBox1.Value <> "" And ComboBox2.Value <> "" Then
Button2.Enabled = True
Else
Button2.Enabled = False
End If
Else
ComboBox2.Enabled = False
ComboBox2.Value = ""
ComboBox2.BackColor = &H80000004
'Freischalten des Speicherknopfes
If TextBox1.Text <> "" And ComboBox1.Value <> "" Then
Button2.Enabled = True
Else
Button2.Enabled = False
End If
End If
End Sub
Private Sub ComboBox1_DropButtonClick()
Call ComboBox1_Fill
End Sub
Ich will diese MsgBox nicht, weil sie den Ablauf unnötig kompliziert! Habt ihr eine Idee dazu?
Danke und LG
Michael
 |
Betrifft: AW: Eigenartiges Comboboxverhalten
von: yummi
Geschrieben am: 11.09.2014 09:23:26
Hallo Michael,
poste doch mal deien Datei, dann kann man dir eher helfen.
Gruß
yummi
Betrifft: AW: Eigenartiges Comboboxverhalten
von: Michael Schneyder
Geschrieben am: 11.09.2014 09:29:54
Hallo Yummi,
danke für die rasche Meldung! Ich glaub, ich habs schon gefunden: In der Liste mit den gespeicherten Daten stehen Einträge, die er nachher für die ComboBox ausschließt. Wenn ich jetzt aber einen dieser Einträge einlesen möchte, motzt er, weil er den vorhandenen Eintrag nicht in der aktuellen Auswahlliste der Combobox finden kann ... warum das allerdings dann damit zusammenhängt, ob ich da eine MsgBox einfüge oder nicht, ist und bleibt mir ein Rätsel.
Ich kann dir das File gerne schicken, komm aber erst wieder abends dazu.
LG Michael
Betrifft: AW: Eigenartiges Comboboxverhalten
von: yummi
Geschrieben am: 11.09.2014 09:35:41
Hallo Michael,
ansonsten hilft debuggen auf 2 Bildschirmen ;-)
Die Msgbox führt ja zu einer Unterbrechung des Events und Abgabe an einen anderen Prozeß, evtl führt ein DoEvents anstatt der MsgBox zum selben Ergenis.
Gruß
yummi