Anzeige
Archiv - Navigation
1072to1076
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
Combobox-Textfeld Eingabe change
01.05.2009 11:08:47
Monika
Hallo,
erst einmal - ich bin neu hier, habe hier schon oft irteressante Hinweise gefunden - Danke für das Forum.
Arbeite das erste mal VBA-UserForm, komme aber aufgrund allgemeiner Programmiererfahrung ganz gut zu recht. (es dauert halt nur seine Zeit - für jedes Ereignis genau herauszufinden, wann welches ausgelöst wird - zumindest ist die Hilfe zu meinem Excel 2000 nicht so, dass es z.B. für einem ComboBox eine Liste gibt welche Eigenschaften und Methoden ein Change-Ereignis auslösen, oft finde ich, nachdem ich ein Problem schon beim Testen eingegrenzt habe, die Info noch zu der Beschreibung der jeweiligen Eigenschaft/Methode eben aber nicht in einer Übersicht)
Konstellation:
Kombobox in die auch im Textfeld eine Eingabe eines neuen Wertes möglich sein soll.
Im Change-Ereignis:
Abhängig von der Auswahl in der Kombobox
wenn ein vorgegebener Wert aus der Liste ausgewählt wird,
fülle ich abhängige Komboboxen mit den entsprechenden Auswahlwerten
(ich brauche also das Change-Ereignis)
wenn ein neuer Wert in den Textbereich der Kombobox eingegeben wird
lösche ich abhängige Komboboxen mit den entsprechenden Auswahlwerten
nach ersten initalisieren(Füllen der Box mit Werten) der Kombobox,
wird der erste Wert des ersten Eintrages ausgewählt und im Textfeld angezeigt
(ListIndex=0) - dabei wird auch ein Change ausgelöst, was mir nur recht ist,
da dadurch die abhängigen Komboboxen mit entsprechenden Werten gefüllt werden.
Mein Problem
=========
Wenn der Anwender in dem Textfeld eine Eingabe macht - ev. auch nur ändert
(Textfeld ist ja vorbelegt) wird bei der Eingabe jedes Buchstabens ein separates
combobox_Change ausgelöst.
Nichts dagegen, daß ein change ausgelöst wird .
Das habe ich auch nur festgestellt, weil ich ein Stop zum Testen in die Ereignisse
gesetzt hatte - außderdem, auch zum Testen jeden Ereignisaufruf in eine Datei
Protokolliere(dazu hatte ich übrigens so glaube ich, ein Beispiel aus diesem Forum
verwendet)
Ich möchte eigentlich, daß das Change-Ereignis nur 1x wenn das Feld verlassen wird
(auf jede Art - mit Maus oder Tastatur in das nächste Feld oder mit der Maus ein
beliebiger anderer Button) ausgelöst wird.
Frage
====
habt ihr auch die Erfahrung gemacht, daß bei jedem einzelnen buchstaben ein
Change-Ereignis ausgelöst wird?
Lösungsansatz und F r a g e hierzu
========================
Ich überlege, ob ich nun das Userform zum xten Male umbaue.
1. Ansatz
- Das Change Ereignis ganz rausnehme.
- Das 1. initialisieren der abhängigen Felder per Upro im initialize des Userforms mache.
- Mir für jede weitere Anpassung der Inhalte der abhängigen Felder an den
aktuelle Inhalt der Kombobox ein anderes Ereignis suche, das nur ausgelöst
wird, wenn ich das Feld verlasse - ich meine irgendwo zwischen den Zeilen in
der Hilfe oder bei der Internetrecherche irgendein Ereignis gesehen zu haben,
w e i s j e m a n d w e l c h e s E r e i g n i s ich hierfür verwenden könnte?
2. Ansatz - weil dann Change benötigt wird nicht hilfreich
Als weitere Möglichkeit könnte ich die abhängigen Felder auch erst jeweil
beim Eintritt in die Felder initialisieren - aber dann müßte ich die Felder zumindest
löschen, wenn sich die Auswahl im führenden Feld ändert? also bräuchte
doch wieder das Change-Ereignis oder muß dies beim Ereignis des verlassen
des führenden Feldes machen - bringt keine Verbesserung zu Ansatz 1.
Danke für Euere Ideen und Erfahrungen.
weitere Fragen am Rande:
- wie zuverlässig ist es mit Ereignissen zu arbeiten, wenn man Wert auf
Release-Festigkeit legt. Verhalten sich die Ereignisse in den folgenden
Releases gleich.
- wie weit kann ich ein excel-Ereignis-Formular auch später mal in andere
Programmiersprachen/Betriebssyste übernehmen, ist es irgendwo
einheitlich definiert, wann z.B. ein Change-Ereignis einer Combobox
ausgelöst wird
(z.B. möchte ich später mit
OpenOffice arbeiten, dann müßte ich das ganze anpassen
OpenOffice-Version von Linux ist auch in der Planung, dann
verwende ich das OpenOffice dort in der Hoffnung daß Windows Open Office
und Linux Open Office weitgehend kompatibel sind - möglichst auch im
Makro-Bereich oder zumindes6, falls die Prammiersprache abweicht, zumindest
so ähnlich sind, daß man so ein Userform umsetzen kann, ohne nochmal
zu überlegen, wann nun welches Ereignis ausgelöst wird und wann nicht)
Java-Kenntnisse zu erweitern steht auch noch im Programm - fast jede
Programmiersprache verwendet ja irgendeine Benutzeroberfläche
die so eine Art UserForm mit der Möglichkeit von Komboboxen zur
Verfügung stellt. (Nur wenn da jedes die Ereignisbehandlung anders
verwendet, verwechselt man das ja sehr leicht - es macht Programme
auch nicht gerade übersichtlich, wenn das immer anders ist)
ja und dann nochmal mit ein paar anderen Sprachen experimentieren
C#, Rubi ...?
Nochmals Danke für das lesen.
Ps: Natürlich habe ich im Forum recherchiert - bei der 5. Seite der Suche nach
"Combobox Change" habe ich dann aufgegeben - weil mir meine Frage zu
differenziert erschien - ich hoffe dass mein Problem nicht ev. Seiten später
behandelt wird.
Gruß
Monika aus dem schönen München

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Antwort aus Frage 1
01.05.2009 11:33:23
Beverly
Hi Monika,
viele Fragen auf einmal in einem Beitrag sind 1. verwirrend und schrecken 2. auch Helfer ab zu antworten, da es ja durchaus sein kann, dass man nicht auf jede Frage eine Antwort weiß.
Hier eine Antwort auf die Frage, welches Ereignis man anstelle Change verwenden kann wenn die Änderung erst nach Verlassen des Steuerelementes erfolgen soll - nimm das Exit Ereignis.


AW: Antwort aus Frage 1
01.05.2009 12:23:17
Monika
Hallo Karin,
danke für die Antwort,
Werde das heute nachmittag testen - komme wohl um den Umbau des Programmes nicht herum - heimlich hatte ich gehofft,
daß man das Feld über eine Eigenschaft so einstellen kann, daß change erst nach Beendigung der Eingabe ausgelöst wird.
wohl ein Wunschtraum ;-)
Meinst Du ich sollte jetzt noch die anderen allgemeinen Fragen zur Kompatibilität von den Ereignisauslösenden Methoden und
Eigenschaftsänderungen in eine separate Frage auslagern - schien mir dann aber zu abstrakt, zu fragen wie weit Ereignisse
Release-Sicher sind ? - wenn man gar nicht weiß auf welcher Detailebene ich gleiches Verhalten bei der Ereignisauslösung
benötige. Trotzdem, wenn Du meinst nehme ich einen Teil der Frage in einen extra Beitrag und verweise ev. auf diesen
Beitrag hier (kann man einen Link auf einen Beitrag setzten?) - kann ich die Ursprungsfrage noch editieren?
Ich kann ja diese Frage als erledigt lassen (also Frage noch offen nicht ankreuzen) und für den Rest eine/mehrere neue Fragen
einstellen.
Nochmals Danke.
Gruß Monika
Anzeige
AW: Antwort auf Frage 1
01.05.2009 14:50:22
Beverly
Hi Monika,
Beiträge kann man im Nachhinein nicht mehr editieren.
Mein Einwurf war nur ein Tipp für die Zukunft. Ich hatte deshalb schon einen anderen Betreff in meinen Antwortbeitrag geschrieben als Hinweis, dass da noch mehr Fragen sind. Da du nun einmal mehrere Fragen in den Beitrag gepackt hast, solltest du es auch so belassen und kein neues Thema eröffnen. Ich kennzeichne den Thread als noch offen, sodass die anderen Helfer sehen können dass hier noch nicht alles beantwortet wurde.


Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige