Anzeige
Archiv - Navigation
184to188
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
184to188
184to188
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formulare

Formulare
24.11.2002 13:04:09
helmut
Auf's Prinzipielle reduziert:

1.
-Beim Anwaehlen von Tabelle1 wird UserForm1 per
Worksheet_Activate angezeigt
-Da zwischenzeitlich mal nach Tabelle2 gewechselt werden soll,
.Show aber nicht auf ein offenes Formular angewendet werden
kann, wird dies mit If Not UserForm1.Visible... verhindert (s. u.) (beim Rueckwechsel wird das Ereignis erneut ausgeloest)

Private Sub Worksheet_Activate()
If Not UserForm1.Visible Then UserForm1.Show
End Sub

2.
-Innerhalb UserForm_Initialize wird nach Tabelle2 gewechselt,
dort was gemacht..., und anschlieszend nach Tabelle1 zurueckgekehrt.

Private Sub UserForm_Initialize()
Sheets("Tabelle2").Select
MsgBox "Tabelle2"
Sheets("Tabelle1").Select
MsgBox "Tabelle1"
End Sub

3.
-Wird nun mit CommandButton1_Click auf UserForm1 selbige entladen,
tritt folgende Fehlermeldung auf:

Private Sub CommandButton1_Click()
Unload UserForm1
End Sub

"Objektvariable oder With-Blockvariable nicht festgelegt
(Fehler 91)"


Hat jemand eine Idee, woran das liegen koennte?

Danke im Voraus



5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Formulare
24.11.2002 13:07:46
M. Kuhn
Moin Helmut,

bitte erst UserForm.Hide
dann evtl. entladen (wenn überhaupt).

MfG Mario

Re: Formulare
24.11.2002 14:23:03
Ralf Sögel
Wie kommst du denn zu dieser abenteuerlichen Erkenntnis?
Re: Formulare
24.11.2002 14:26:11
Ralf Sögel
Es gibt keinen ersichtlichen Grund, warum zu einem anderen Tabellenblatt gewechselt werden muss. Was ist denn deiner Meinung nach der Grund?
Re: Formulare
24.11.2002 14:50:45
M. Kuhn
Hallo, Herr Sögel,

zuerst dürfte ich um die Einhaltung der übliche Höflichkeiten in einem Forum bitten.

Danach die Erklärung (die man bei genauerer Kenntnis von VBA findet):

Wenn auf einer UserForm vor oder nach der Anzeige Manipulationen oder Abfragen stattfinden sollen, so wird diese mit *UserForm.Load* in den Speicher gebracht. Dabei wird der Referenzvektor auf dem Stack abgelegt. Mit *UserForm.Show* wird bei Bedarf angezeigt. Ein *UserForm.Hide* belässt diese im Speicher, sodass vor allem asynchrone, vom Interpreter generierte Threads oder Abfragen über Zustände, die erst nach dem 'Schließen' erfolgen), den referenzierten Zeiger weiter verwenden können. Ein alleiniges *.Unload* bringt also evtl. Probleme mit Threads, zumindest fragmentiert es den Stack unnötig.

MfG Mario

Anzeige
Re: Formulare
24.11.2002 17:10:13
helmut
z. B. moechte ich eine ComboBox mit Werten aus einem anderen Blatt fuellen

helmut

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige