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

User-Form - Voreinstellungen ohne Click-Ereignis auszulösen

User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 10:34:09
Eric March
Hallo!

Vorab, es sollte alle Excel-Versionen ab 2010 berühren; 2016 ist die an der ich zumeist arbeite, aktuell sitze ich an 2010.

Grundkonzept ist eine Anzahl an Zeilen abzuarbeiten und dort bei Bedarf etwas zu ändern. Das soll per User-Form passieren. Es gibt Zeilen in denen nichts passiert, also darf auch nichts passieren. Mit einer bescheidenen Weiter-Schaltfläche werden gewählte Änderungen final ausgelöst und es geht zu nächsten Zeile.

Eine Gruppe von Option-Buttons kontrolliert eine bestimmte Zelle. Und mein Wunsch wäre, diese Gruppe faktisch zu neutralisieren damit beim Weiter nichts verändert wird.
Die simple Idee heißt im Makro einen Option-Button ein- und gleich wieder auszuschalten. Ein Button, der natürlich (s)eine Funktion auslöst. Genauer gesagt löst bekanntlich jede Bedienung das Click-Ereignis aus und das ist natürlich nicht beim Neutralisieren zu gebrauchen.

Wie also kann man so einen Button (um)schalten ohne dabei das Klick-Ereignis mit auszulösen?
Google liefert Codevorschläge die im Click-Ereignis–Code anhand einer externen Statusvariablen sofort abspringen. Damit kann ich aber nicht einen Option-Button per Makro ein- oder ausschalten, was der Kern der Übung wäre. Und Application.EnableEvents geht nicht in einer User-Form.

Ein Workaround wäre noch ein Button in der Gruppe der unsichtbar, versteckt, ist und den ich dann drücken darf; mangels programmiertem Click-Ereignis passiert nichts. Aber - ich würde schon gerne alles sehen und in welchem Schalt-Zustand es sich befindet. Daher würde ich so eine Mogelei gerne umschiffen.
Augenblicklich behelfe ich mir mit Hilfsvariablen (es gibt mehr denn eine Gruppe…) die den Stand der vom Button berührten Zelle auffangen, dann wird ein- und ausgeschaltet und die Zelle mit dem konservierten Wert beschickt.
Das muss doch einfacher zu lösen sein - ohne Konserven und Schatten-Buttons?!

Grüße,
Eric March


23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 10:40:26
Oberschlumpf
Hi Eric,

ich würde mit Public-Variablen arbeiten.

- wenn durch VBA-Code das Click-Ereignis ausgelöst wird, dann - vorher - die Public-Boolean-Var auf TRUE setzen
im Click-Ereignis dann IF PUBBOOLEAN = TRUE THEN PUBBOOLEAN = FALSE: EXIT SUB (gleich wieder auf False, weil ja der nächste Click-Auslöser direkt durch anklicken eines Controls geschehen kann)

Hilfts?

Ciao
Thorsten
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 10:45:42
Eric March
@Oberschlumpf

Ich hatte diese Idee bereits angesprochen und verworfen.

Nicht das Click-Ereignis muss verhindert werden - sondern eine Zustandsänderung (!) soll erfolgen ohne es überhaupt auszulösen. Im Makro. Kontrolliert.

Eric March
Anzeige
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 14:18:40
Oberschlumpf
na ja, mach, wie du möchtest...

Ich versteh nich, wieso du dich so dolle gegen Ja/Nein-Variablen wehrst - ich weiß, dass das super funktioniert - weil schon oft + immer wieder so angewendet.

AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 14:38:53
Eric March
…was immer «Ja-Nein–Variablen» sind: wenn damit das Abwürgen der Sequenz im Click-Ereignis gemeint ist: wie will m,an dann etwas zum Init umschalten da dann jeder Schaltversuch an dieser Sperre abprallt wenn ich sie aktiviere?
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 14:57:34
Oberschlumpf
echt jetzt?? ja/nein ist für dich unverständlich??

ok, damit meine ich eine public-variable, die dann auf TRUE gesetzt wird, wenn der Code selbst ein Click-Ereignis auslöst.
Im Click-Ereignis wird in erster Code-Zeile immer zuerst geprüft, ist Variable TRUE oder FALSE
Wenn TRUE dann
Variable auf FALSE setzen, Makro abbrechen

soooo....wenn ein Click-Ereignis durch den Anwender ausgelöst wird, DANN gibts ja kein Code, der Variable auf TRUE setzt....
somit...erste Codekontrolle...
Variable ist FALSE, dann kein Makro-Abbruch

nur du könntest, wenn du denn wollen würdest, per Upload eine Bsp-Datei mit allem, was erforderlich ist, zeigen - wir können das nicht, weil wir deine Datei ja nicht kennen...aber ich weiß, das auch aus Erfahrung: MIT Bsp-Datei kann man viel besser testen - OHNE Bsp-Datei kann man nur erraten...
Anzeige
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 15:06:05
Eric March
Immer noch nicht mitgelesen?
Die Button-Gruppe habe 5 Elemente. 5 Elemente die eine Funktion ausüben. Auf Click. Die sollen alle auf Aus (False).
Nun programmiere mir Code der einen Button an-schaltet (ergo die anderen aus) um ihn sofort wieder aus-zuschalten. Und das ohne dass dies die Click-Funktion ausführt. Und alles nur mit dem Click-Ereignis.
Eric March
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 15:09:49
Oberschlumpf
hehe...stümmt fast...doch, mitgelesen schon...aber nich mehr dran gedacht - deswegen unwissenderweise aber trotzdem von mir vorausschauend!^^

willst du uns noch immer keine Bsp-Datei mit allem was erforderlich ist per Upload zeigen?!
Anzeige
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 15:19:05
Eric March
All das lässt sich mühelos selbst nachbauen. Ein Option-Button mit seinem Click-Ereignis genügt. Wie schaltet man diesen dann aus ohne das Klick-Ereignis überhaupt auszulösen?
Eric March
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 16:09:34
Oberschlumpf
du kommst MIT Datei nicht weiter - erwartest/wünschst dir/erhoffst von uns OHNE Datei eine Lösung...haha

sorry, deinen Job (Datei erstellen) werde ich nicht erledigen!

aber mir nun eigtl auch egal...ob du nun Datei lieferst oder nicht...ich mag dir nicht weiter helfen
Viel Erfolg!
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 16:13:22
Eric March
Deine Einstellung als Helfer nicht mitzudenken und mitzuziehen, den Hilfesucheden zum Stoffel zu machen Dinge zu liefern die objektiv unnötig sind, weil man sich nicht die Materie knien will, ist bedauerlich.
E. M.
Anzeige
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 16:18:30
Oberschlumpf
jep...du hast recht...und ich hab...
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 16:20:36
Eric March
…und das sind Beleidigungen die ein Forum für Neue Teilnehmer gleich diskreditieren.
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 16:28:10
Oberschlumpf
hä? ich beleidige dich doch nich

Aber ich bin hier nicht ein Neuling = ich kenn dieses Forum schon seit ca 20 Jahren = ich hab schon diverse Erfahrungen gemacht...ganz besonders bei Hilfe-Versuchen, mit von mir erstellten Bsp-Dateien, die den Angaben vom Fragenden entsprachen!

Immer wieder mal Ergebnis = der Fragende antwortete dann auf meine Bsp-Datei bezogen in etwa: "Oh, danke, aber deine Bsp-Datei hilft nicht....weil ICH (der Fragende!) vergessen habe, dass ich ja doch andere Zellen verwende im Original als ich in den Beschreibungen bisher angegeben habe.

Der Fragende war nicht in der Lage, meine falsche^^ Bsp-Datei anzupassen = meine Mühe zu helfen war für den...MÜLLEIMER!

Und nur deswegen, nich weil ich dich ärgern will...lol...erstelle ich eben keine Dateien mehr für diejenigen Fragenden, die keine Lust haben, diesem Leitsatz zu folgen:

...wer eine qualifizierte Antwort erwartet - muss eine ebenso qualifizierte Frage stellen...

Von mir aus kannst du DAS nun auch wieder als Beleidigung auffassen, was aber absolut nicht als solche gemeint ist - es ist nur ein Fakt.....oder...du kannst ja vielleicht mal darüber nachdenken....
Anzeige
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 16:30:16
Eric March
«...wer eine qualifizierte Antwort erwartet - muss eine ebenso qualifizierte Frage stellen...»
Andere hier haben die Frage verstanden.
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 16:33:39
Oberschlumpf
...und anderen Hilfe-Versuchern hast du auch erzählt "das geht so nicht"...nu ja...wieviele sollen denn noch ihr Glück versuchen?
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 10:41:23
daniel
Hi

Wenn du auf die "externe Staus Variable" verzichten willst, kannst du anstelle des Klick-Events auch das MouseUp-Event verwenden.
Das spricht nur auf die Aktionen des Anwenders an. Sollte jemand vom Anwenderkreis lieber mit der Tastatur arbeiten, brauchst du zusätzlich noch das KeyUp-Event.

Gruß Daniel
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 10:54:31
Eric March
Hmmm - stimmt; ich setze andere Events ein hebele das nicht mehr programmierte Click aus.
Das sollte ich eigentlich längst gelernt haben… Aber die Automatik beim Erzeugen Click vorgesetzt zu bekommen und das immer gleich zu ändern ist auch nicht intuitiv und komfortabel.

Ich lasse das mal offen, vielleicht hat es noch eine Idee 😉

Eric March
(vorläufig AFK)
Anzeige
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 10:44:59
MCO
Hallo Eric!

Bei der Initialisierung der Userform kannst du doch die Grundzustände der buttons schon mit angeben.
Besser wahrscheinlich, wenn du deine Variablen aus der Zeile einliest (bei Initialisierung und nach jedem "WEITER"-drücken.

Das Makro sollte dann alle betreffenden Elemente durchgehen und die Eigenschaft .enabled auf TRUE oder FALSE setzen. Dies kann mit einer einzigen subroutine geschehen.
Weitermachen = Bedingung festlegen (TRUE / False)

subroutine Weitermachen 'Aufruf

sub subroutine (Schaltzustand as boolean)
knopf1.enabled = Schaltzustand
knopf2.enabled = Schaltzustand
knopf3.enabled = Schaltzustand
knopf5.enabled = not(Schaltzustand)
knopf6.enabled = not(Schaltzustand)
knopf7.enabled = not(Schaltzustand)
end sub


Damit wir jede Zeile für sich bewertet und Knöpfe ausser Funktion gesetzt, ohne sie auszublenden.

Gruß, MCO
Anzeige
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 11:08:01
daniel
"Eine Gruppe von Option-Buttons kontrolliert eine bestimmte Zelle. "

Wenn's nicht aus grafischen Gründen erforderlich ist:
Ersetze die Optionbuttongruppe durch eine Listbox. Das macht dir das Leben einfacher, weil du nur noch ein Steuerelement verwalten musst und nicht viele.
Gruß Daniel
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 10:50:49
Eric March
(Diese Forum ist etwas gewöhnungsbedürftig da nicht alle Antworten Gemeinsam zu sehen sind.)

@MCO
Ich bin mir recht sicher, dass auch beim Initialize (und diese Funktion wird mittendrin nicht ausgelöst) die Click-Events getriggert werden. Das wäre nicht nützlich da sie sich irgendwo… entladen…

Eric March
Anzeige
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 11:05:06
MCO
"da nicht alle Antworten Gemeinsam zu sehen sind" - der Klick auf "Forum-Threat" zeigt alle Antworten.

" beim Initialize (und diese Funktion wird mittendrin nicht ausgelöst) "
Daher hab ich ja geschrieben "bei Initialisierung und nach jedem "WEITER"-drücken."

Was da jetzt für click-Ereignisse getriggert werden sollen, weiß ich nicht.

Vorschläge hast du ja jetzt reichlich....

Gruß, MCO
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 12:25:26
daniel
Ich glaube die Idee von MCO ist diese:

Richte deine Userform im schon Editor so ein, dass alle Steuerelemente beim Start der Userform den gewünschten Standardwert haben, hierzu diesen in der Eigenschaftsliste jeden Steuerelementes in die Eigenschaft .Value eintragen, so dass im Initzialize-Event keine Werte mehr gesetzt werden müssen, die unerwünschte Events auslösen könnten.
Wenn du jetzt die Userform auf die Standardwerte zurücksetzen willst ohne das Events ausgelöst werden, kannst du sie mit Unload schließen und hinterher wieder öffnen. Zum "hinterher öffnen" müsstest du in einem Allgemeinen Modul ein Makro schreiben, dass die Userform öffnet (Userform1.show) und dieses Application.Ontime aufrufen, so dass es dann nach dem Schließen der Userform sofort ausgeführt wird.

Gruß Daniel
Anzeige
AW: User-Form - Voreinstellungen ohne Click-Ereignis auszulösen
24.10.2023 12:37:21
Eric March
@daniel

Die User-Form bleibt live offen. Das hatte ich mit angedeutet.

Und selbst dann zweifle ich, wie angedeutet, an, dass bei einem Init nicht doch die Events ausgelöst werden wenn ich auf die Buttons zugreife.

Gerade eben ins Home-Office zurückgewechselt liegen noch ein paar Dinge an bevor ich weiterexperimentieren kann.

Eric March


Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige