Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1116to1120
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
Inhaltsverzeichnis

VBA - Case bringt alles durcheinander

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
12.11.2009 20:26:26
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
13.11.2009 06:34:15
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
Anzeige
Me.ComboBox12.Text ist doppelt-gemoppelt,...
12.11.2009 20:34:53
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 !
12.11.2009 20:41:25
Gerd
Ganz ruhig bleiben, Luc. :-)
Gruß Gerd
Ach ja, stimmt! Hatte ganz vergessen,...
12.11.2009 21:21:46
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 :-?
Anzeige
AW: Me.ComboBox12.Text ist doppelt-gemoppelt,...
13.11.2009 06:37:59
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
13.11.2009 10:34:48
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
Anzeige
oder ändere die Reihenfolge
13.11.2009 10:48:05
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
13.11.2009 11:39:56
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
Anzeige
Bei mir gehts.
13.11.2009 11:51:35
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.
13.11.2009 12:56:07
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.
Anzeige
Deine Tabelle stimmt nicht!
13.11.2009 13:10:32
Tino
Hallo,
Userbild
Gruß Tino
AW: Deine Tabelle stimmt nicht!
13.11.2009 13:43:28
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
Anzeige
lade eine aktuelle Datei...
13.11.2009 22:55:31
Tino
Hallo,
die diesen Fehler bringt.
Gruß Tino
AW: nicht in Auflistung der Combo 2
13.11.2009 11:32:53
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.
13.11.2009 11:35:38
Tino
AW: Tino nicht Tile, siehe zweiten Beitrag oT.
13.11.2009 11:40:58
Günther
TINO, Entschuldigung
AW: nicht in Auflistung der Combo 2
14.11.2009 13:22:26
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
Anzeige
AW: nicht in Auflistung der Combo 2
14.11.2009 14:28:38
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
16.11.2009 12:45:46
Günther
ACHTUNG liebe Mithelfer, ich habe den Fehler gefunden. Oh mei....Sachen gibts.
Herzlichen Dank für eure Geduld.
Gruß

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige