Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

combobox

combobox
15.11.2006 05:35:28
makroman
Hallo zusammen,
ich habe ein Problem bei mehreren Comboboxen in einer Userform. Hinter allen vier Comboboxen ist die gleich Auswahlliste hinterlegt. Jenachdem welche Combobox ich anklicke sind die Listen anders sortiert (Name, Vorname, Plz, Ort). Dann soll ein Eintrag ausgewählt werden und in die Combobox-Felder hineingeschrieben werden.
Das klappt auch alles, wenn ich den Code mauell Schritt für Schritt durchgehe. Wenn ich aber die UF öffne und dann auf eine Combobox klicke, wird mir nicht immer, aber in einigen Fällen ein anderer Eintrag angezeigt.
Ich benutze einmal das Dropdown und das Change-Ereignis. Kann man es irgendwie unterbinden, dass wenn ich durch den Code Werte in die Combobox einfüge, diese dann sofort versucht, einen entsprechenden Eintrag zu finden (MatchEntry habe ich schon für alle Boxen auf 2 gesetzt.
Wie gesagt, in Debug-Modus klapts aber nicht als Programmcode, da werden die Change-Ereignisse zum Teil 2,3 oder 4 mal durchlaufen und ändern dannn atürlich jedesmal den Wert, was zu diesen Vorkommnissen führt. Ist das ein interner Bug oder habe ich was übersehen !?
Falls zu unklar liefere ich gerne weitere Infos. Der Code ist realtiv lang und mit den UF verknüpft.
Gruß
Turbo

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: combobox
15.11.2006 09:28:54
fcs
Hallo Turbo,
man kann im Code ereignis-abhängige Prozeduren deaktivieren und aktivieren.

Application.EnableEvents = False
'....Code, der ggf. Ereignisse auslöst
Application.EnableEvents = True

außerdem sollte man sich dann noch folgende kleine Prozedur auf die Seite legen, um nach einem Code-Abbruch ggf. die Ereignis-Prozeduren wieder "scharf" zu schalten.

Sub EreignismakrosEIN()
Application.EnableEvents = True
End Sub

Gruß
Franz
AW: combobox
15.11.2006 17:04:10
kakroman
Hallo Franz,
danke für die schnelle Meldung, aber damit habe ich leider kein Erfolg.
Ich will das Problem noch einmal schildern.
Wich habe 4 Comboboxen. Alle sind mit der gleichen Tabelle verknüpft. Je nach dem, welche Combobox geöffnet wird, wird die verknüpfte Tabelle sortiert und dann in der Dropdown-Auswahl angezeigt ( sortiert nach Namen, Vornamen, PLZ Und Ort). Das Problem liegt darin, wenn ich mehrere gleich Einträge habe, dann springt die Auswahl einfach auf den als erstes gefunden Wert und gibt den auch zurück.
Dabei habe ich etra eine eindeutige NUmmer mitlaufen in der 5. Spalte. Die wird aber nicht angezeigt. Ich war der Meinung, dass ich darüber genau auf die entsprechende Datenzeile zugreifen kann.
Weiterhin habe ich das Click und das Change-Ereignis im UF-Modul, da ich auch den Datensatz anzeigen lassen möchte, wenn ein paar Zeichen eingegeben werden (MatchEntry=1).
Ich komme da nicht weiter, nun habe ich festgestellt, dass die einzelnen Ereignisse mehrmals aufgerufen werden. Wahrscheinlich durch sich selbst und dadurch werden dann unkalkulierbare Datensätze angezeigt, die vorher gar nicht ausgewählt worden sind.
Im Einzelschritt-Modus funktioniert die Funktion einwandfrei. Nur wenn ich sie über die UF und Combobox aufrufe, dann werden die Ereignisse mehrmals ( bis zu 4 mal) durchlaufen.
Daher meine Frage, ob es nicht eine Möglichkeit gibt, die Ereignisse zwar in der Userform zu hinterlegen, aber zu unterscheiden, ob vom User eine Eingabe oder Auswahl getätigt wurde oder ob das Ereignis durch VBA-Code angestoßen wurde.
Die Ereignisse dürfen je nach AUswahl nur einmal abgerabeitet werden, dann ist das Ergebnis korrekt.
Oder gibts andere Vorschläge zum Problem (Gerne auch per Telefon)
Vielen Dank und Gruß
Turbo ;-))
Anzeige
AW: combobox
15.11.2006 22:28:34
fcs
Hallo Turbo,
das Chaos bei den angezeigten Daten in den Comboboxen wird dadurch verursachz, dass alle Boxen auf die gleichen Daten als RowSource zugreifen und das diese Daten beim Anklicken einer der Boxen umsortiert werden.
Die Comboboxen speichern nur die Zeile in der Auswahlliste aus der der Wert ausgewählt wurde. Wird die Auswahlliste umsortiert, dann entspricht die Zeile einem anderen Wert und dieser wird dann als aktueller Wert in der jeweiligen Box angezeigt.
Ich denke du muß dein Userform umstricken.
Baue nur eine Kombiauswahlliste in das UF ein, wobei du als RowSource die Auswahlliste mit den 5 Spalten (einschließlich der Kennnummern-Spalte) festlegst, als BoundColumn wählst du die Spalte mit der Kennnummer. Jetzt kannst du mit den Funktionen Index und Lookup (VERGLEICH) über die Kennnummer, die als Wert der Kombibox gespeichert wird, auf die Daten des ausgewählten Datensatzes zugreifen.
Sortiere die Auswahlliste per Optionbuttons um. In der Click-Prozedur der Optionbuttons muss du zu Beginn den Wert der Combobox speichern, dann die Liste umsortieren und den Wert der Combobox wieder zuweisen.
Hier eine kleine Beispieldatei: https://www.herber.de/bbs/user/38224.xls
Gruss
Franz
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige