Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1132to1136
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

Code macht nur teilweise, was er soll

Code macht nur teilweise, was er soll
Uppe
Hallo Experten,
wi in der Betreffzeile schon steht, habe ich einen Code, der nur zum Teil das macht, was er soll. Aber ich kann den Fehler nicht finden.
Ich habe eine Userform mit zwei Listboxen.
In der linken stehen alle möglichen Werte, in die rechte sollen die ausgewählten Werte (mit dem Pfeil in der Mitte) eingetragen werden.
Das klappt.
Nun gibt es Abhängigkeiten. Wenn ich AAA auswähle, soll auch CCC in die rechte Liste eingetragen werden. Klappt auch.
Wenn DDD ausgewählt wird, soll auch BBB in die rechte Liste geschrieben werden. Das klappt nicht! Warum nicht?
Es klappt nicht, wenn der Index des "abhängigen Wertes" kleiner ist als der Index des Ausgangswertes. Aber warum nicht? Die Schleife durchläuft doch alle Werte!? Markiert wird der Wert in der linken Liste, aber nicht rübergeschoben.
https://www.herber.de/bbs/user/67693.xls
Vielen Dank fürs Helfen!
Gruß Uppe

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Das machen Kinder und Haustiere auch so... ;-)
02.02.2010 17:10:10
NoNet
Hallo Uppe,
auch Kinder, Haustiere (und manche Erwachsene) machen manchmal nicht das, was sie sollen...
Im Gegensatz dazu macht der Code aber zumindest DAS, was Du ihm "sagst" :
Mit der Zeile lstAlle.Selected(j) = FALSE deaktivierst Du das "abhängige Element" innerhalb der FOR...NEXT-Schleife wieder...es wird daher nicht in das zweite Listenfeld übertragen.
Mein Vorschlag :
Ersetze diese Zeile : lstAlle.Selected(j) = True
Durch diese Zeile : lstWahl.AddItem lstAlle.List(j) 'Vor "Exit FOR"
Dadurch werden die abhängigen Elemente gar nicht erst aktiviert, sondern sofort in lstWahl übertragen.
Bleibt nur zu klären, was passieren soll, wenn :
Ausgangswert CCC von AAA abhängig ist und z.B. Ausgangswert EEE von CCC.
Soll dann bei Auswahl EEE sowohl CCC wie auch AAA kopiert werden ?
Gruß, NoNet
PS: Viel Erfolg noch mit der "Kinder- und Haustier-Erziehung ;-)"
Anzeige
Danke für den Tipp!
02.02.2010 17:47:08
Uppe
Hallo NoNet,
bei Haustieren kann ich nicht mitreden, aber bei Kindern kann ich das Problem bestätigen
Leider hilft mir Dein Vorschlag nicht 100% weiter.
Es wird noch ein Ereignis angestossen, wenn ein Wert aus der lstAlle ausgewählt wird. Dies passiert leider nicht, wenn ich den Wert direkt in lstWahl eintrage
ABER: Der Tipp mit der zu frühen "Deaktivierung" des Ausgangswertes hat mir geholfen.
Ich habe lstAlle.Selected(i) = FALSE aus der FOR...NEXT-Schleife herausgenommen. Nach der FOR...NEXT-Schleife durchlaufe ich nochmal die komplette Liste und deaktiviere die ausgewählten Werte. So klappt es!
Die Dreierkonstellation bei den Abhängigkeiten, die Du beschrieben hast, gibt es nicht. Zum Glück!
Gruß Uppe
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige