Anzeige
Archiv - Navigation
1868to1872
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
ActiveX-Steuerelemente deaktivieren
10.02.2022 16:42:45
xr8k2
Glück auf ...
folgendes Problem ... ich deaktiviere im Ereignis "Before_Close" diverse ActiveX-Steuerelemente. Die Eigenschaften wird auch korrekt gesetzt. Wenn das Workbook dann nach dem Schließen erneut geöffnet wird, werden die Steuerelemente weiterhin als .enabled dargestellt, zumindest solange die Sicherheitswarnung zur Ausführung von Makros nicht bestätigt wurde. Wird die Makroausführung dann zugelassen, ändert sich auch die Darstellung der Steuerelemente.
So sieht das Before_Close als Beispiel aus:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Tabelle1.Commandbutton1.Enabled = False
ME.Save
End Sub
Ist jemandem schon mal dieses Phänomen untergekommen bzw. wie könnte ich das umgehen damit die Elemente nach dem Öffnen auch bei nicht aktivierten Makros sofort als .disabled dargestellt werden?
Danke schon mal für eine Rückmeldung und viele Grüße ....

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveX-Steuerelemente deaktivieren
10.02.2022 17:05:48
Oberschlumpf
Hi,
aktueller Stand = jetzt
das wird so, wie gewünscht, nicht funktionieren.
Denn das Deaktivieren wird ja durch ein Makro durchgeführt.
Ein Makro führt nur dann durch, wenn es das "darf", sprich, nachdem es aktiviert wurde.
Aber so lange du das Aktivieren von Makrois nich erlaubst, wird auch kein Makro durchgeführt.
Änderungsmöglichkeit:
Setz doch die Enabled-Eigenschaft von den ActiveX-Controls gleich auf FALSE, Datei speichern, öffnen, und alle betroffenen Controls sind nun auch schon bei noch deaktivierten Makros disabled.
Diese Vorgehensweise hätte aber vielleicht zur Folge, dass du deine Programmierung anpassen musst.
Denn, wie ich es jetzt verstehe, werden - nur bei Bedarf - Controls de-aktiviert.
Wenn diese aber schon vor dem Start deaktiviert sind, dann musst du ja alles ändern auf: bei Bedarf AKtivieren.
Hilfts?
Ciao
Thorsten
Anzeige
AW: ActiveX-Steuerelemente deaktivieren
10.02.2022 17:13:22
onur
Enabled UNTER EIGENSCHAFTEN auf False setzen und ggf per Makro aktivieren,
AW: ActiveX-Steuerelemente deaktivieren
10.02.2022 17:27:12
xr8k2
Hey, danke für eure Rückmeldungen ...
muss ich wohl doch noch etwas weiter ausholen ...
Also insgesamt ... im Workbook_Open werden die Steuerelemente aktiviert und im Workbook_BeforeClose werden sie wie dargestellt deaktiviert.
Hintergund ist der, dass beim Starten einer Arbeitsmappe die Steuerelemente als Inaktiv dargestellt werden sollen, solange keine Makroausführung zugelassen wird.
So siehts insgesamt aus:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Tabelle1.Commandbutton1.Enabled = False
ME.Save
End Sub
Private Sub Workbook_Open()
Tabelle1.Commandbutton1.Enabled = True
End Sub
Wird nun die Arbeitsmappe mit aktivierten Makros geschlossen, wird korrekter Weise auch das BeforeClose abgearbeitet, alles .disabled und gespeichert.
Öffne ich nun die Arbeitsmappe wieder neu, sind die Steuetrelemente nach wie vor als .enabled dargestellt, auch wenn die Makroausführung noch nicht zugelassen wurde. Ich hoffe so ist's vielleicht verständlicher.
Danke euch nochmals für die Unterstützung ... und freundliche Grüße!
Anzeige
AW: ActiveX-Steuerelemente deaktivieren
10.02.2022 17:29:07
onur
WENN DU HIER HILFE WILST, SOLLTEST DU AUCH MAL LESEN, WAS MAN DIR GESCHRIEBEN HAT.
Ich habe geschrieben, WAS du machen sollst.
AW: ActiveX-Steuerelemente deaktivieren
10.02.2022 17:31:20
Oberschlumpf
gib mir FÜNF! :-))
AW: ActiveX-Steuerelemente deaktivieren
10.02.2022 17:32:46
onur
Manchmal glaube ich, ich rede mit der Wand. :)
AW: ActiveX-Steuerelemente deaktivieren
10.02.2022 17:30:54
Oberschlumpf
Und noch mal:
Du musst umgekehrt handeln.
Erst alle betroffenen Controls über ihre Eigenschaften DE-aktivieren.
Datei speichern.
Wenn du diese nun wieder öffnest, sind die Controls schon vor Makroaktivierung disabled - so, wie du es wünschst!
Und nun, mit Aktivieren der Makros musst du im OpenEreignis der Datei alle Controls per Code AKtivieren - anders gehts nich
AW: ActiveX-Steuerelemente deaktivieren
11.02.2022 08:36:30
xr8k2
Guten Morgen,
danke für eure konstruktiven Beiträge ...
@ onur
Ich habe dich schon verstanden ...die Eigenschaften der Steuerelemente wurden ursprünglich über die Eigenschaften auf .enabled = false gesetzt.
Wird das WB nun mit aktivierten Makros gestartet werden diese wie gewollt auf .enabled = true gesetzt. Soweit so gut.
Der Anwender nimmt dann erforderliche Eingaben vor und speichert die Mappe (was auch gewollt ist) ... damit werden natürlich auch die aktuellen Eigenschaften der Steuerelemente .enabled = true mit gespeichert und die initiale Einstellung ist für die Katz'.
Daher gewollt die Eigenschaften beim Schließen des WB wieder auf .enabled = false zu setzen ... was ja auch tatsächlich geschieht. Nur werden die Steuerelemente beim erneuten öffnen des WB ohne Makros immer noch als aktiviert dargestellt.
Aber egal ...

Zitat:
WENN DU HIER HILFE WILST, SOLLTEST DU ...
... vielleicht nochmal wen anderes Fragen ;)
Danke jedenfalls für eure Bemühungen und freundliche Grüße!
Anzeige
Ohjehhh!!!!...ich bitte dich...weiterzulesen
11.02.2022 10:23:18
Oberschlumpf
und GANZ G R O S S um Entschuldigung!
Hallo,
Du hast recht!
Ich hab nun endlich auch mal eine Testdatei erstellt (vorher hatte ich leider nur "große Klappe" ohne testen)
1. einfach neue Datei, nur ein Tabellenblatt, keine Einträge in den Zellen
2. direkt in die Tabelle hinzugefügt hab ich jeweils 1x CommandButton, CheckBox, ComboBox (alles ActiveX)
3. jetzt für alle Controls Enabled auf FALSE gesetzt
ins WorkbookOpen-Ereignis den Code Sheets(1)CommandButton1.Enabled = True geschrieben, das gleiche auch für die anderen Controls
4. Datei an einem nicht "vertrauenswürdigen Ort" gespeichert + (auch Excel) geschlossen
5. im Win-Explorer im entsprechenden Verzeichnis die Datei wieder mit Doppelklick in Excel geöffnet
6. Die Frage, ob Makros aktiviert werden sollen, positiv bestätigt
jetzt wird Enabled bei allen Controls auf TRUE gesetzt
7. Datei gespeichert und alles geschlossen
8. Datei geöffnet, Makros aktiviert...und...
...Enabled bei allen Controls ist TRUE !!!!....mist mist mist :-/
Eine tatsächlich mal kompetente Antwort auf das "WARUM" hab ich leider (noch) nicht, aber ich möchte mich noch mal bei dir entschuldigen!
Ciao
Thorsten
Anzeige
AW: Ohjehhh!!!!...ich bitte dich...weiterzulesen
11.02.2022 10:38:19
xr8k2
Hallo Torsten,
alles gut, gibt nichts zu entschuldigen ... manchmal ist ein Problem eben schwieriger zu beschreiben als zu lösen ;)
Danke für deine nochmalige Anteilnahme!
Nun zur Lösungsfindung ... die .enabled Eigenschaft steht beim Öffnen m. E. schon richtig auf falsch ... die Elemente werden nur nicht richtig dargestellt.
Sobald ich auch bei deaktivierten Makros dann den VBA-Editor öffne, ändert sich auch die Darstellung der Steuerelemente ^^
Wird das Problem wohl doch im Excel und nicht am Anwender liegen.
Ich habe nun schon Hinz und Kunz versucht das zu umgehen ... bisher aber noch keinen Weg gefunden ... es fehlt irgendwie sowas wie ein Refresh oder Repaint vor dem Speichern und Schließen.
Danke und Grüße,
Lars
Anzeige
AW: Ohjehhh!!!!...ich bitte dich...weiterzulesen
11.02.2022 11:32:09
xr8k2
Glück auf,
also eine Möglichkeit die mal funktioniert ... auch wenn sie mir nicht wirklich gefällt ...
- im Ereignis Workbook_Beforeclose (cancel=true) Steuerelemente deaktivieren sowie
- über OnTime kürzeste Zeit später Aufruf einer separaten BeendenProzedur und über diese dann Speichern und Schließen der Mappe
Grüße,
Lars
Nur mal so interessehalber...
11.02.2022 11:36:24
{Boris}
Hi,
...was ist eigentlich so schlimm daran, dass die Steuerelemente vor Makroaktivierung aussehen wie Enabled = True?
VG, Boris
AW: Nur mal so interessehalber...
11.02.2022 11:46:52
xr8k2
Hallo Boris,
wirklich schlimm ist das sicherlich nicht ... ist einfach nur so ein Gestaltungsding. Der nicht so sehr versierte Beobachter bemerkt bei aktiven Elementen und fehlender Makroaktivierung oftmals nicht, dass sich eine Schaltfläche nicht klicken lässt bzw. er wundert sich, warum sich z. B. eine Checkbox nicht aktivieren oder deaktivieren lässt ...
Beste Grüße,
Lars.
Anzeige
AW: Nur mal so interessehalber...
11.02.2022 11:51:46
{Boris}
Hi,
ok, danke für die Erläuterung. Ich würde ja das Aktivieren der Makros erzwingen. So lange sie nicht aktiviert sind, ist nur 1 Blatt zu sehen mit der Aufschrift:
Ohne aktivierte Makros läuft hier gar nix!
Das Coding dafür ist recht simpel.
VG; Boris
AW: Nur mal so interessehalber...
11.02.2022 23:01:14
xr8k2
Hallo Boris,
ja danke ... sowas kenne ich.
Ich war eben nur auf diesen beschriebenen Umstand gestoßen und den konnte ich mir nicht erklären (und das kann ich übrigens immer noch nicht wirklich).
So dachte ich mir, ich frage mal bei den Experten ;).
Beste Grüße,
Lars.

127 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige