Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema SpinButton
BildScreenshot zu SpinButton SpinButton-Seite mit Beispielarbeitsmappe aufrufen

VBA - Case bringt alles durcheinander | Herbers Excel-Forum


Betrifft: VBA - Case bringt alles durcheinander von: Günther
Geschrieben am: 12.11.2009 20:03:44

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

  

Betrifft: Select Case trifft keine Schuld von: Erich G.
Geschrieben am: 12.11.2009 20:26:26

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


  

Betrifft: AW: Select Case trifft keine Schuld von: Günther
Geschrieben am: 13.11.2009 06:34:15

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


  

Betrifft: Me.ComboBox12.Text ist doppelt-gemoppelt,... von: Luc:-?
Geschrieben am: 12.11.2009 20:34:53

...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... ;-)


  

Betrifft: AW: Me.Text = UF.Text ! von: Gerd L
Geschrieben am: 12.11.2009 20:41:25

Ganz ruhig bleiben, Luc. :-)

Gruß Gerd


  

Betrifft: Ach ja, stimmt! Hatte ganz vergessen,... von: Luc:-?
Geschrieben am: 12.11.2009 21:21:46

...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 :-?


  

Betrifft: AW: Me.ComboBox12.Text ist doppelt-gemoppelt,... von: Günther
Geschrieben am: 13.11.2009 06:37:59

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


  

Betrifft: nicht in Auflistung der Combo 2 von: Tino
Geschrieben am: 13.11.2009 10:34:48

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


  

Betrifft: oder ändere die Reihenfolge von: Tino
Geschrieben am: 13.11.2009 10:48:05

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


  

Betrifft: AW: oder ändere die Reihenfolge von: Günther
Geschrieben am: 13.11.2009 11:39:56

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


  

Betrifft: Bei mir gehts. von: Tino
Geschrieben am: 13.11.2009 11:51:35

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


  

Betrifft: AW: Bei mir gehts. von: Günther
Geschrieben am: 13.11.2009 12:56:07

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.


  

Betrifft: Deine Tabelle stimmt nicht! von: Tino
Geschrieben am: 13.11.2009 13:10:32

Hallo,



Gruß Tino


  

Betrifft: AW: Deine Tabelle stimmt nicht! von: Günther
Geschrieben am: 13.11.2009 13:43:28

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


  

Betrifft: lade eine aktuelle Datei... von: Tino
Geschrieben am: 13.11.2009 22:55:31

Hallo,

die diesen Fehler bringt.


Gruß Tino


  

Betrifft: AW: nicht in Auflistung der Combo 2 von: Günther
Geschrieben am: 13.11.2009 11:32:53

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?


  

Betrifft: Tino nicht Tile, siehe zweiten Beitrag oT. von: Tino
Geschrieben am: 13.11.2009 11:35:38




  

Betrifft: AW: Tino nicht Tile, siehe zweiten Beitrag oT. von: Günther
Geschrieben am: 13.11.2009 11:40:58

TINO, Entschuldigung


  

Betrifft: AW: nicht in Auflistung der Combo 2 von: Christian
Geschrieben am: 14.11.2009 13:22:26

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


  

Betrifft: AW: nicht in Auflistung der Combo 2 von: guenther.nebel@googlemail.com
Geschrieben am: 14.11.2009 14:28:38

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


  

Betrifft: AW: nicht in Auflistung der Combo 2 von: Günther
Geschrieben am: 16.11.2009 12:45:46

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

Gruß