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

tglInfo = false schließt Userform nicht

tglInfo = false schließt Userform nicht
22.02.2024 19:36:27
Nordic
Moin :)
Ziel ist es eine Userform mit Klick Tooglebutton zu öffnen und mit erneutem Klick wieder zu schließen.
Hierzu habe ich folgenden Code:



Private Sub tglInfo_Click()
With tglInfo
.BackColor = IIf(.Value = False, &H80000002, &H80000002)
End With
If tglInfo = True Then
UserForm1.Show
Else
'UserForm1.Hide
Unload UserForm1
End If
End Sub


Wenn ich nun den Tooglebutton drücke (tglInfo = true) dann wird erwartungsgemäß die Userform eingeblendet.
Beim erneuten Klick (tglInfo sollte false sein) passiert gar nichts. Weder dass sich der "Zustand" ändert noch dass sich die Userform schließt.

Wo liegt meine (Denk)Fehler?

Danke im Voraus und Grüße, Nordic(Uwe)

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: tglInfo = false schließt Userform nicht
22.02.2024 19:52:21
ralf_b
kannst du denn den togglebutton überhaupt klicken?
deine Userform ist modal ,d.h. sie blockiert alles andere.
probier mal in dieser Form. Userform.show false
AW: tglInfo = false schließt Userform nicht
22.02.2024 20:20:18
onur
UserForm1.Show VbModeless
AW: tglInfo = false schließt Userform nicht
22.02.2024 21:23:55
Alwin Weisangler
Hallo Uwe,

Ich hatte eben mal lange Weile und die Berechnung für Zeile 3 Anzahl Teilnehmer (welche übrigens Fehler verursacht) sowie das Austrittsdatum rausgeschmissen und die Berechnung via VBA erschlagen. Laufzeit ist ungefähr wie mit den Formeln. Also leider kein Perfomancegewinn. Die Userform geht über den Togglebutton zu schalten.
Eine Tempoverbesserung könnte man vielleicht erreichen, indem die Tabelle in ein Array geladen wird und jedwede Weiterverarbeitung darin passiert.
https://www.herber.de/bbs/user/167256.xlsm

Gruß Uwe
Anzeige
AW: tglInfo = false schließt Userform nicht
22.02.2024 22:13:27
Nordic
G'Abend Uwe,
meine Nachricht im anderen Thread hat sich mit Deiner hier leider überschnitten - Sorry.
Ich hab mal schnell drüber geschaut.
Erstes Resümee:
UserForm Ein\Aus: Super!
Teilnehmerzahl: Einfach genial!!! :)
Ich hatte auch schon mal die Idee - irgendwann mal - möglichst viele Formel in VBA zu packen um Anwenderfehler wie versehentliches löschen vorzubeugen.
Da mein eigentlich Job die Beratung der TN ist, ist dieses Projekt ehr "Privatvergnüngen" um mir die Arbeit und Organisation mit ein paar Kennzahlen zu erleichtern.

Was hat es damit auf sich, dass die Spalten nun Zahlen statt Buchstaben aufweisen?

Was das "P"-Problem betrifft.: In Spalte (jetzt) 19 soll das tatsächliche Austrittsdatum händisch eingetragen werden. Dies kann mit dem Enddatum identisch, also (R)egulär sein, der Teilnehmer kann aber auch schon (V)orzeitig gehen (z.B. wg. Arbeitsaufnahme) oder es kommt zum (A)bbruch aus "schwerwiegenden" Gründen.
Wenn in 19 die Ergebnisse aus dem VBA-Code stehen, dann scheint das leider auf den ersten Blick gar nicht zu im Vergleich zu den Werten in Spalte 18, die überwiegend korrekt sind. Außer beispielsweise, wie bereits an anderer Stelle erwähnt bei TN 9.
Offensichtlich wird das auch bei der Berechnung der aktiven TN. Ich bin sehr sicher, dass wir von der 6 bis zur 11KW kontinuierlich mit 9-10 TN belegt waren bzw. sind ;)

Viele Grüße und Gute Nacht, Uwe
Anzeige
AW: tglInfo = false schließt Userform nicht
23.02.2024 09:50:02
Alwin Weisangler
Hallo Uwe,

ich hatte vergessen den Haken in den Optionen/Formeln Z1S1 Bezugsart rauszunehmen (hatte keine Lust ständig das Alphabet durchzuzählen).

Zur Problematik Berechnung der Spalte R (Ende Datum):
Trage bitte mal in die Spalte S die Wunschwerte der Spalte R händisch - ohne Änderung der Spalte R - ein.
In Spalte R sowohl nur deine Formel als auch mit Zählenwenn "P" und deiner Formel kommen Werte raus, die teilweise keinen Sinn ergeben.

Ich hab aber eine Idee, was vielleicht funktionieren könnte.
Dazu brauche ich aber separat die Wunschergebnisse incl. aller zu erwartenden Bedingungen im Vergleich zu den derzeit bestehenden mit Formel erzeugten Ergebnissen.
Ich denke mal, dass in diesem Falle es überschaubarer sich mit VBA lösen lässt, als eine riesige Formel zu bauen.
Trage bitte Wunschergebnisse bis Zeile 29 ein.

Gruß Uwe
Anzeige
AW: tglInfo = false schließt Userform nicht
23.02.2024 18:01:19
Nordic
Hallo Uwe,
Werner hat mir dankenswerterweise die passende Formel für das "P-Problem" gestrickt :)
=WENNFEHLER(ARBEITSTAG.INTL(D14; ((P14+Q14)-1-ZÄHLENWENNS(W$5:NX$5;"Fr";W$6:NX$6;">="&D14;W14:NX14;"P")); "0000111"; Ressourcen!C$2:C$16); "")

Bzgl. des Öffnen und Schließen der Userform bin ich leider noch nicht weitergekommen.
Ich hab mir selbstverständlich Deine Datei von gestern angeschaut bei der das offensichtlich hervorragend funktioniert und den den gesamten Code mit meinem verglichen, bin aber nicht wirklich fündig geworden.
UserForm1.hide ist soweit klar, scheint aber nicht des Rätsels Lösung allein zu sein.
Was hat es mit "Sperren" auf sich bzw was ist für dieses Ausgangsproblem konkret zu tun?
Viele Grüße, Uwe
Anzeige
AW: tglInfo = false schließt Userform nicht
23.02.2024 19:53:17
Alwin Weisangler
Hallo Uwe,

Was das Öffnen und Schließen des Userforms anlangt ist die Lösung des Problems recht simpel.
Klicke im VBA Editor das Userform an --> gehe im Eigenschaftenfenster zum Punk ShowModal und setze diesen auf False.

Die Variable Sperre ist eine Boolean Variable und kennt als Werte nur True und False.
Diese verwende ich, da die Errechnung der Werte in Zeile 3 ins Tabellenblatt eingetragen werden um zu verhindern, dass die im Modul des Tabellenblattes enthaltene Prozedur zwar noch angestoßen wird, aber dann abgebrochen wird, weil es nicht erforderlich ist und unnötig Laufzeit erzeugt.
Das ist nötig, weil diese Prozedur nicht im Modul des Tabellenblattes steht und der eigentlich dafür gedachte Befehl Application.EnebleEvent = False nur im Modul des Tabellenblattes greift.


Gruß Uwe
Anzeige
AW: tglInfo = false schließt Userform nicht
23.02.2024 21:00:44
Nordic
Moin mein Lieber,
der tglButton funktioniert nun wie gewünscht.
Wie so oft, kleiner Klick, große Wirkung.
Vielen Dank dafür und natürlich auch für die andere Mühe, die Du Dir gemacht hast.

Bei der Berechnung der TN (= Teilnehmer) in Zeile 3 fiel mir auf, dass Du evtl. einem Missverständnis unterlegen bist.
Die Anzahl der TN in Zeile 3 ist einer der zentralen Punkte, weshalb es zur Idee für dieses Projekt kam.
Hier geht es vor allem auch um eine Vorschau auf die TN Zahl der derzeit aktiven zzgl. zukünftiger Anmeldungen.
Eintragungen wie 1, 2,... 10,P,... f spielen dafür keine Rolle
So sind in der Woche vom 19.02. bis 22.02. 9 TN aktiv, am 26. (außerplanmäßig) und 28.02. (planmäßig) kommen nach heutigem Stand 3 TN hinzu, so dass wir in der 9. und 10.KW zw. 9 und 11 TN (11 nur für einen Tag) haben.
Hintergrund: bis April noch können wir nur max. 9-10 TN kalendertäglich einen Platz anbieten, ab April haben wir bis zu 20 Arbeitsplätze.
Durch diese (Vorschau) haben wir die Möglichkeit im Voraus zu reagieren und TN zu schieben.

Viele Grüße und ein schönes Wochenende, Uwe
Anzeige
AW: tglInfo = false schließt Userform nicht
22.02.2024 20:17:49
Nordic
Hallo Ralf,
tatsächlich kann ich den Button nicht klicken wenn die Userform offen ist.
Ich muss sie zuerst über X schließen.

Mit Userform.show false habe ich nun das Ergebnis, dass die Userform wieder öffnet wenn ich den Button auf false zurücksetze.
Im Anschluss kann ich dann zwar den Button drücken, bekomme aber folgerichtig den Laufzeitfehler, dass die Form bereits geöffnet ist.

Gruß, Uwe

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige