Autor
|
Thema: Combobox - Vergleich (1834 mal gelesen)
|
Tut_Ench_Ammun Mitglied Dipl.-Ing. (FH)
Beiträge: 161 Registriert: 16.06.2005 AutoCAD MECHANICAL 2006 Inventor 10 Ansys Workbench 10.0/11.0 WIN XP - SP 2 Fujitsu Siemens Computers Intel(R) Core(TM)2 CPU 2.13 GHz, 3.25 GB RAM
|
erstellt am: 10. Sep. 2007 11:42 <-- editieren / zitieren --> Unities abgeben:
Hallo VBA-ler, bin am verzweifeln, da mein Code (Vgl. Code.txt) nicht funktioniert. Ich habe eine Userform gestaltet (Vgl Userform.jpg), die in Abhängigkeit von einem gewählten Comboboxeintrag andere Comboboxeinträge füllt. Zur besseren Verständlichkeit: Ich brauche 3 Hauptgruppen und weitere Untergruppen - Elektrik - Sensor - Hersteller Sensor 1 - Hersteller Sensor 2 - Schalter - Hersteller Schalter 1 - Hersteller Schalter 2 - Hydraulik - ... - ... - Steuerung - ... - ... So. Nachdem die Hauptgruppe gewählt wurde, soll die erste Untergruppe mit Werten belegt werden - Soweit funktioniert es. Nach Auswahl der Untergruppe (Typ) soll die Unter-Unter-Gruppe (Hersteller) ausgefüllt werden - und das funktioniert nicht mehr (Vgl. Userform1.jpg) . Habe schon vieles probiert mit "And" und "Clear" ... aber nichts hilft. Bitte um Hilfe zu diesem Problem. Im voraus schon vielen Dank. MfG Tutti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank88 Mitglied
Beiträge: 153 Registriert: 11.10.2004
|
erstellt am: 10. Sep. 2007 12:00 <-- editieren / zitieren --> Unities abgeben: Nur für Tut_Ench_Ammun
Hallo, zunächstmal solltest Du Deinen Code aufräumen, dann fallen Fehler eher auf. Eine Konstruktion 'Else: End If' ist überflüssig. Wenn die Bedingung nicht zutrifft, wird die Funktion ohnehin verlassen, ohne daß etwas geschieht. Dann glaube ich, daß Du Deiner ComboBox3 jeweils erst die Werte hinzufügen mußt, die Du dann mit 'ComboBox3.Value = "Hersteller Schalter 1"' zuweist. Das geht aus Deinem Posting nicht hervor, ich vermute es aber, weil Du das bei ComboBox2 genauso machst. Gruß, Frank
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tut_Ench_Ammun Mitglied Dipl.-Ing. (FH)
Beiträge: 161 Registriert: 16.06.2005 AutoCAD MECHANICAL 2006 Inventor 10 Ansys Workbench 10.0/11.0 WIN XP - SP 2 Fujitsu Siemens Computers Intel(R) Core(TM)2 CPU 2.13 GHz, 3.25 GB RAM
|
erstellt am: 10. Sep. 2007 12:43 <-- editieren / zitieren --> Unities abgeben:
Dank dir für die Antwort. Den Else-Pfad hab ich drin gelassen, damit die Schleife sauber ist. Hab mich beim STRG+C - STRG-V bissl vergriffen. Ich wollte mit Additem die 3. Combobox füllen, nachdem die 1. und 2. Combobox gewählt wurde. Anbei der geänderte Code. P.S.: Beim Ausführen des Makros im Debug-Mode funzt alles wunderbar. Nur im "Normalbetrieb" trägt er in die 3. Combobox nichts ein. MfG Tutti [Diese Nachricht wurde von Tut_Ench_Ammun am 10. Sep. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank88 Mitglied
Beiträge: 153 Registriert: 11.10.2004
|
erstellt am: 10. Sep. 2007 13:20 <-- editieren / zitieren --> Unities abgeben: Nur für Tut_Ench_Ammun
Hallo nochmal, mein Tipp zum ELSE: trage dort die zweite Möglichkeit ein. Also z.B.: If ComboBox2.Value = "Sensor" Then ComboBox3.AddItem "Hersteller Sensor 1" ComboBox3.AddItem "Hersteller Sensor 2" ComboBox3.AddItem "Hersteller Sensor 3" Else ComboBox3.AddItem "Hersteller Schalter 1" ComboBox3.AddItem "Hersteller Schalter 2" ComboBox3.AddItem "Hersteller Schalter 3" End If Das verkürzt den Code und erhöht die Lesbarkeit. Und Du hast ja jeweils nur zwei Möglichkeiten. Unter Steuerung trägst Du 'SPS' und 'BUS-Leitung' ein, fragst aber 'Pumpe' und 'Ventil' ab. Daher auch keine Einträge in der Liste. Gruß, Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hajo_Zi Mitglied Projektant
Beiträge: 479 Registriert: 26.03.2003 AutoCad 2020 (ich arbeite in 2D) Betriebssystem Windows 10
|
erstellt am: 10. Sep. 2007 14:11 <-- editieren / zitieren --> Unities abgeben: Nur für Tut_Ench_Ammun
|
Tut_Ench_Ammun Mitglied Dipl.-Ing. (FH)
Beiträge: 161 Registriert: 16.06.2005 AutoCAD MECHANICAL 2006 Inventor 10 Ansys Workbench 10.0/11.0 WIN XP - SP 2 Fujitsu Siemens Computers Intel(R) Core(TM)2 CPU 2.13 GHz, 3.25 GB RAM
|
erstellt am: 10. Sep. 2007 15:41 <-- editieren / zitieren --> Unities abgeben:
Hallo Frank, jo in der letzten Abfrage, war die Vergleich falsch - Danke. Fehler behoben. Wenn ich die Comboboxeinträge in den Else-Pfad reinschiebe, zeigt er mir nur die Einträge für den Else-Pfad aber nicht für den Then-Pfad. Außerdem, angenommen ich habe in der Gruppe Elektrik noch ein Eintrag (in Summe 3), würde ja das mit dem Else-Pfad weg fallen nicht mehr so ganz funktionieren. Interessanter Weise funktioniert ja das Ganze im DEBUG-MODUS, nur im "Normalbetrieb" nicht!!! Hallo Hajo, dank dir für den Link. Aber diese Lösung trifft's nicht Gruß Tutti [Diese Nachricht wurde von Tut_Ench_Ammun am 10. Sep. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank88 Mitglied
Beiträge: 153 Registriert: 11.10.2004
|
erstellt am: 10. Sep. 2007 15:54 <-- editieren / zitieren --> Unities abgeben: Nur für Tut_Ench_Ammun
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 10. Sep. 2007 15:56 <-- editieren / zitieren --> Unities abgeben: Nur für Tut_Ench_Ammun
Hallo zusammen, ich habe mal ein wenig gebastelt (weil Urlaub und sowieso an der Sache interessiert). Der "Code" ist in der txt angehängt (und nicht perfekt!). Kopier' Dir am besten mal die Fragmente an die entsprechenden Stellen. Die Userform wird beim Öffnen der Mappe geladen. Der Sauberkeit und Nutzerführung halber sollte noch ein Abbrechen-Button eingebaut werden. Die Listen der drei Boxen können übersichtlich in VBA erweitert werden. Hier (mit xls 2003) klappt's. Funktioniert das bei Dir? Frederik ------------------ DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tut_Ench_Ammun Mitglied Dipl.-Ing. (FH)
Beiträge: 161 Registriert: 16.06.2005 AutoCAD MECHANICAL 2006 Inventor 10 Ansys Workbench 10.0/11.0 WIN XP - SP 2 Fujitsu Siemens Computers Intel(R) Core(TM)2 CPU 2.13 GHz, 3.25 GB RAM
|
erstellt am: 11. Sep. 2007 07:20 <-- editieren / zitieren --> Unities abgeben:
Hallo Frederik, als ich deinen Code gelesen habe ist es mir wie Schuppen von den Augen gefallen. Das Ereignis Combobox2_Change ist wichtig, damit das ganze funktioniert. Vielen Dank, das war die Lösung. MfG Tutti Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |