Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wie reaktiviere ich eine UserForm?

Forumthread: Wie reaktiviere ich eine UserForm?

Wie reaktiviere ich eine UserForm?
05.03.2004 09:09:39
Alfred
Gibt es eine einfache Methode der Art Activate, mit der ich eine UserForm wieder aktiv machen kann, die während eines Makros inaktiv wurde?
Bitte beachten:
Die UserForm ist weder mit frm.Hide ausgeblendet noch mit frm.unload aus dem Speicher geschmissen. Während das Makro lief, wurde nur einfach das Excel-Sheet aktiv, die UserForm steht immer noch im Vordergrund, aber mit grauer Titelleiste für "nicht aktives Fenster".
Ich suche nicht Dialog.Hide ... Dialog.Show!
Auch SendKeys "%{TAB}" mit oder ohne Warten löst das Problem nicht.
Mehr zum Hintergrund und zu vergeblichen Lösungsansätzen unter
https://www.herber.de/forum/archiv/388to392/t391301.htm
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie reaktiviere ich eine UserForm?
05.03.2004 09:16:14
harry
hi alfred,
versuchs mit userform.setfocus
liebe grüße,
harry
AW: Wie reaktiviere ich eine UserForm?
05.03.2004 10:45:13
Alfred
War damals mein erster Gedanke, UserForms haben diese Methode (in Off97) aber offenbar nit.
AW: Wie reaktiviere ich eine UserForm?
05.03.2004 09:17:59
Franz W.
Hallo Alfred,
warum NICHT "Dialog.Show", "evtl. Dialog.Show: DoEvents" ?? Bringt's das wirklich nicht?
Grüße
Franz
Anzeige
AW: Wie reaktiviere ich eine UserForm?
05.03.2004 10:48:58
Alfred
Weiiiil Dialog schon geshowt ist, siehe verlinkte Diskussion zuvor.
Und da hilft auch kein DoEvents nich.
AW: Wie reaktiviere ich eine UserForm?
05.03.2004 09:51:12
Dieter Klemke
Hallo Alfred,
ich schlage dir eine API-Lösung vor.
Du hältst dir in der UserForm_Activate-Prozedur den Windows-Handle deiner UserForm fest und setzt mit seiner Hilfe deine UserForm im gewünschten Moment wieder in den Vordergrund.
Hier der Code zum Klassenmodul der UserForm:
Public hwnd As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" ( _
ByVal hwnd As Long) As Long

Private Sub btnDrucken_Click()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(1)
ws.PrintOut
SetForegroundWindow hwnd
End Sub


Private Sub btnSchließen_Click()
Me.Hide
End Sub


Private Sub UserForm_Activate()
hwnd = FindWindow(vbNullString, Me.Caption)
End Sub

MfG
Dieter
Anzeige
AW: Wie reaktiviere ich eine UserForm?
05.03.2004 11:11:12
ALfred
Oh, vielmals dankeschön, Dieter!
Genau das geht, habs soeben probiert.
Eine Frage hätt ich noch, die interessant werden könnte:
Da ich derzeit davon ausgehen muß, daß mehrere derartiger Workbooks gleichzeitig geöffnet sind, ist es ja zumindest denkbar, daß auch mehrere UserForms verschiedener Workbooks gleichzeitig offen sind.
Funkt Dein Algorithmus dann noch oder sollte ich mir Gedanken machen, die UserForms systemweit eindeutig zu betiteln?
Anzeige
AW: Wie reaktiviere ich eine UserForm?
05.03.2004 11:50:58
Dieter Klemke
Hallo Alfred,
FindWindow sucht wohl nur anhand der Fenster-Überschrift.
Um da eindeutiger zu sein, könntest du z.B. die folgende Initialize-Prozedur verwenden:

Private Sub UserForm_Initialize()
Me.Caption = Me.Caption & Format$(Time, "  hh:mm:ss")
End Sub

MfG
Dieter
Anzeige
AW: Wie reaktiviere ich eine UserForm?
05.03.2004 12:12:29
Alfred
Ok, das hatte ich vermutet, was mich bezüglich meines Einfühlungsvermögens in API-Rufe dann doch etwas beruhigt ;-)
Ja, nun habe ich <jubel>endlich eine funktionierende Lösung</jubel>, dafür danke ich Dir noch einmal ganz herzlich, Dieter!
Tschau
Alfred
PS:
Sieht so eigentlich auch viel professioneller aus als ein einfaches uform.SetFocus - letztlich ganz gut, daß uns die VBA-Entwickler diese Trivialität erspart haben <VEG>
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige