HERBERS Excel-Forum - das Archiv
VBA - Case bringt alles durcheinander
Günther

Hallo,
anhand der Beispielmappe können Fachleute sicherlich nachvollziehen, welches Problem ansteht.
Ich war bis zum Einbau der SELECT CASE Geschichte bei Comboboxen sehr zufrieden. Allerdings war mein Gedanke die Anwendung so bedienerfreundlich als möglich zu erstellen. Dazu wollte ich bei Auswahl des Geschlechts u.a. auch die Combobox mit Titel entsprechend mit CASE ansteuern.
Gut, macht es auch einigermaßen. Allerdings nur beim ersten Aufklappen. Klappe ich das DropDown mehrfach kommen plötzlich beide "Listen".
Schwerwiegender aber ist, daß weder die Listbox-Auswahl, noch die SpinButton jetzt nach Einbau der Case funktionieren.
WAS MACH ICH BLOSS FALSCH?
Ich möchte diese CASE-Geschichte nämlich auch mehrfach in der Userform dann haben. Zum Beispiel: Wer abgeordnet ist, kann natürlich nicht Schicht-/Tagdienst leisten, weil ja gar nicht anwesend.
Wer sieht meinen Fehler?
https://www.herber.de/bbs/user/65835.xls
Angenehmen Abend

Select Case trifft keine Schuld
Erich

Hi Günther,
wenn du ComboBox12_DropButtonClick() ausführst, wird nicht automatisch vorher die ComboBox2-Liste gelöscht.
Die alten Einträge bleiben in der Liste, mit deiner Prozedur fügst du hinten weitere an.
Probier mal

Private Sub ComboBox12_DropButtonClick()
ComboBox2.Clear         ' erst mal die alte Liste löschen
Select Case Me.ComboBox12.Text
usw.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Select Case trifft keine Schuld
Günther

Guten Morgen, entschuldige, daß ich erst jetzt dazu komme, aber meine Tochter hatte Fieber und da war es dann vorbei mit dem gemütlichen Excel-Abend.
JA! Du hattest RECHT, mit clear funzt es . Man(n) sah den Wald vor Bäumen halt nicht.
DANKE
Dieser Teil des Problems ist damit gelöst
Me.ComboBox12.Text ist doppelt-gemoppelt,...
Luc:-?

...Günther!
Entweder Me.Text oder ComboBox12.Text wäre richtig. Teste mal beides und teile dann mit, ob und wenn, bei welcher Variante der Fehler immer noch auftritt. Daraus kann man ggf Rückschlüsse ziehen.
Gruß Luc :-?
PS: Das sind keine Ränge, sondern einfach nur Titel! Hast du das antidemokratische Rangordnungsdenken schon so verinnerlicht... ;-)
AW: Me.Text = UF.Text !
Gerd

Ganz ruhig bleiben, Luc. :-)
Gruß Gerd
Ach ja, stimmt! Hatte ganz vergessen,...
Luc:-?

...dass sich hier Me stets auf die ganze UF bezieht, Gerd,
und alles auf ihr einzeln angesprochen wdn muss. Meine letzte derartige Aktion ist wohl mit 5-7 Monaten doch schon zu lange her... ;-)
Gruß Luc :-?
AW: Me.ComboBox12.Text ist doppelt-gemoppelt,...
Günther

Guten Morgen auch an LUC und GERD L,
also, ich habe jetzt in der SPIN BUTTON Private Sub mal das ME.COMBOBOX2.TEXT.....geändert in COMBOBOX2.TEXT blabla...
Die Combo2 ist ja die wichtige Geschichte mit männlich und weiblich.
Hier bleibt es stehen mit:
Laufzeitfehler 380: Eigenschaft Text konnte nicht gesetzt werden. Ungültiger Eigenschaftswert.
Ich werde noch weiter probieren, denke aber, das es tatsächlich was mit dem CASE zu tun hatte. Ich konnte den SpinButton VOR Einbau der Case-Geschichte einwandfrei bedienen.
Habt ihr noch eine Idee?
Schönen Freitag
nicht in Auflistung der Combo 2
Tino

Hallo,
diese Fehler kommt weil du der Combo einen Text zuweisen willst der nicht in der auflistung vorkommt.
Also z. Bsp. willst Du bei
Me.ComboBox2 = .Cells(Wert - 1, 1).Offset(0, 1).Text
in die Combox Priv.Doz.in schreiben aber in der Auflistung kommt nur Priv.Doz. vor.
Du kannst die Eigenschaft Style der ComboBox2
von fmStyleDropDownList auf fmStyleDropDownCombo ändern,
danach kannst Du auch Daten schreiben die nicht in der Auflistung vorkommen.
Gruß Tino
oder ändere die Reihenfolge
Tino

Hallo,
was auch noch gehen müsste.
Mach die Case ins ComboBox12_Change und ändere die Reihenfolge bei SpinButton1_Change damit erst
die Liste in ComboBox2 richtig gestellt wird.
Also Me.ComboBox12 = .Cells(Wert - 1, 1).Offset(0, 4).Text ganz nach oben,
dies sollte das Change Ereignis der ComboBox12 auslösen und somit die ComboBox2 Auflistung richtig stellen.
Gruß Tino
AW: oder ändere die Reihenfolge
Günther

Hi Tino,
DANKE, leider negativer Erfolg.
Habe jetzt verschiedene Reihenfolgen durchprobiert. Steigt immer aus sobald Geschlecht und damit verbunden der Titel wechselt.
Sorry für die negative Nachricht
Bei mir gehts.
Tino

Hallo,
da Deine Tabelle auch nicht richtig ist funktioiert dies auch nicht.
Schwester ist bestimmt nicht männlich und Dr.med. bestimmt nicht weiblich, oder doch?
So gehts bei mir, nach anderen Fehlern habe ich jetzt nicht gesucht.
https://www.herber.de/bbs/user/65861.xls
Gruß Tino
AW: Bei mir gehts.
Günther

Tino, hab mal deinen code mit meinem verglichen und entsprechend in der originalmappe verbessert - leider ohne erfolg.
Solange "W" (Geschlecht) beim Blättern mit SpinButton bleibt läuft es auch.
Wechselt das aber auf "M" bleibt der Debugger bei
"Me.Combobox2 = .cells(Wert - 1, 1).Offset(0, 1).Text"
stehen.
Im Debuggermodus mit der Maus über die gelb hinterlegte Zeile zeigt es "" an, sprich es wird nichts in die CB2 eingelesen. Die anderen Combos und Textboxen sind jedeoch mit dem entsprechenden Wert aus der Tabelle belegt.
Das bedeutet, es können die Titel offensichtlich nicht eingelesen werden. Da eine Eingabe dessen aber ZWINGEND erforderlich ist, wird der Code wohl hier abgebrochen. Ist meine Laienerklärung....
Stelle ich die og. Zeile im Code an Platz 1, kann man erkennen, daß die Daten wohl eingelesen werden, trotzdem erfolgt ein Abbruch.
Ich kann die Originalmappe leider nicht hochladen größer 300 kb. Hat ca. 1 MB
Sorry für die Umstände.
Deine Tabelle stimmt nicht!
Tino

Hallo,
Userbild
Gruß Tino
AW: Deine Tabelle stimmt nicht!
Günther

Tino,
Tabelle STIMMT. Code ist mit deinem identisch und trotzdem bricht es beim SpinButton beim 2. Datensatz ab und zwar in der Combo2 (Titel, oder wie ich es nannte Rang). Im Debuggermodus zeigt es mir aber den Wert einwandfrei an. Kommt halt nicht in der Combobox an.
Ich bin halt leider ein DAU....und seh keinen Fehler.
Am besten ich schmeiß den SpinButton raus. Alles andere (Listbox/Suchen etc) funktioniert toll. Wäre halt schön gewesen.
Wenn Du noch eine Idee hast wäre ich mehr als dankbar. Wenn nicht besten Dank und schönes WE
lade eine aktuelle Datei...
Tino

Hallo,
die diesen Fehler bringt.
Gruß Tino
AW: nicht in Auflistung der Combo 2
Günther

Tilo, danke für die Antwort. Leider hilft es mir nicht weiter.
Es muss zwingend fmStyleDropDownList bleiben, keine eigenen Einträge sind erlaut.
Das Problem ist, dass der SpinButton spinnt.
Er soll ja eigentlich nur in den in der Tabelle Personaldaten die Datensätze durchblättern.
Beim zweiten Datensatz steigt er dann aus mit eben oben genannter Fehlermeldung Laufzeitfehler.
Aufgefallen ist mir, daß beim Auskommentieren der Combo2 alles perfekt läuft.
Tja, guter Rat?
Tino nicht Tile, siehe zweiten Beitrag oT.
Tino

AW: Tino nicht Tile, siehe zweiten Beitrag oT.
Günther

TINO, Entschuldigung
AW: nicht in Auflistung der Combo 2
Christian

hallo,
wie zuvor beschrieben, hat das nichts mit "Select Case" zu tun. Das ist ja lediglich eine Methode zur Fallunterscheidung so wie "If - Then - Else".
Warum der Spaß bei dir u.a. knallt:
Du füllst die ComboBox2 u.a. mit "Dr. med.". In der Tabelle steht aber "Dr.med." (ohne Leerzeichen).
Wenn du mit Userforms eine Tabelle bearbeiten willst (Datensätze editieren, löschen, neu erzeugen), dann arbeite ausschließlich mit dem Userform und nicht noch parallel mit der Tabelle. Eigentlich kannst'e die Tabelle ausblenden, den hier hast du nichts mehr manuell einzutragen.
Mein Tipp: Schreibe in weitere Tabellen die möglichen Werte für deine ComboBoxes, anstatt diese hardcordiert in das Script zu schreiben, dann bist du variabler - bei Datenbanken läuft das ja auch so.
Um sicher zu sein, dass du keine doppelten Datensätze erzeugst, könntest du in einem nächsten Schritt die Daten auch normalisieren. Die Daten sind also nicht mehr zentral in einer Tabelle, sondern über mehrere Tabellen verteilt und normalisiert.
Anzeigen kannst du die Daten dann zB in einem Userform in einer Listbox. Zu editieren und neu erzeugen öffnest du ein weiteres Userform mit allen Detail-Infos.
Gruß
Christian
AW: nicht in Auflistung der Combo 2
guenther.nebel@googlemail.com

Hallo ihr beiden,
besten Dank für euere Antworten und Anregungen.
Ich habe in der UF natürlich die RowSource-Werte entfernt gehabt und lies die Titel nur mit der Case / additem einlesen. Trotzdem, mein SpinButton spinnt.
Die Datei kann ich leider nur entschärft hochladen, damit die 300 kb nicht überschritten werden und dies auch erst am kommenden Montag.
HAbt einen schönen TAg
AW: nicht in Auflistung der Combo 2
Günther

ACHTUNG liebe Mithelfer, ich habe den Fehler gefunden. Oh mei....Sachen gibts.
Herzlichen Dank für eure Geduld.
Gruß