Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1452to1456
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
UserForm immer im Vordergrund
19.10.2015 07:43:09
Leah
Guten morgen
Hab ein kleines Problem und zwar wird beim öffnen einer Datei ein UserForm gestartet.
Wenn Excel noch nicht geöffnet ist, funktioniert das wunderbar, dass die UserForm in Vordergrund ist. Wenn aber schon eine andere Datei oder einfach Excel geöffnet ist, wird die UserForm nicht im Vordergrund angezeigt, sondern ich muss erst in der Taskleiste Excel anklicken, damit die UF angezeigt wird.
Ich hab folgenden Code in meiner Arbeitsmappe bei Workbook_Open:
Application.WindowState = xlMinimized
Message.Show
Application.WindowState = xlNormal
Wie muss ich den Code anpassen, dass die UF IMMER im Vordergrund erscheint beim öffnen?
Vielen Dank und gruss
Leah

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

Betreff
Datum
Anwender
Anzeige
AW: UserForm immer im Vordergrund
19.10.2015 09:40:57
ChrisL
Hi Leah
Vielleicht genügt es schon, wenn du die Userform Eigenschaft ShowModal=False setzt.
Oder könntest einen Workaround ausprobieren. Eine versteckte Textbox auf das Userform und SetFocus setzen.
cu
Chris

AW: UserForm immer im Vordergrund
19.10.2015 10:16:09
Leah
Hi Chris
Danke.. ShowModal=False hat nicht den gewünschten Erfolge, da ich ja Excel minimiert haben möchte und nur die UserForm im Vordergrund.
Das mit der verstekten TextBox hat auch nicht funktioniert. Aber vielleicht hab ichs falsch eingesetzt.
Habs so umgesetzt:
Application.WindowState = xlMinimized
Message.Show
txFocus.SetFocus
Application.WindowState = xlNormal
Hast du noch ne Idee?
gruss
leah

Anzeige
muss passen o.T.
19.10.2015 10:48:21
ChrisL
.

AW: UserForm immer im Vordergrund
19.10.2015 10:58:06
Leah
Leider funktionierts nicht. Zudem bekomm ich beim schliessen der UF den Laufzeitfehler 424 'Objekt erforderlich' und springt auf die Zeile: txFocus.SetFocus.
Vielleicht gibt's ja noch eine andere Lösung.
gruss und danke
leah

AW: UserForm immer im Vordergrund
19.10.2015 10:59:16
Nepumuk
Hallo,
immer im Vordergrund und so bleiben, sprich auch wenn du ein anderes Fenster aktivierst soll das UserForm im Vordergrund bleiben, oder darf es dann auch in den Hintergrund?
Gruß
Nepumuk

AW: UserForm immer im Vordergrund
19.10.2015 11:12:44
Leah
Hi Nepumuk
Die UF soll nur beim öffnen im Vordergrund sein, wenn ein anderes Fenster aktiviert wird, kann sie in den Hintergrund.
Gruss
Leah

Anzeige
AW: UserForm immer im Vordergrund
19.10.2015 11:52:54
Nepumuk
Hallo,
teste mal:
Option Explicit

Private Declare PtrSafe Function SetWindowPos Lib "user32.dll" ( _
    ByVal hwnd As LongPtr, _
    ByVal hWndInsertAfter As LongPtr, _
    ByVal x As Long, _
    ByVal y As Long, _
    ByVal cx As Long, _
    ByVal cy As Long, _
    ByVal wFlags As Long) As Long
Private Declare PtrSafe Function FindWindowA Lib "user32.dll" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As LongPtr

Private Const HWND_TOPMOST As LongPtr = -1
Private Const HWND_NOTOPMOST As LongPtr = -2
Private Const SWP_NOSIZE As Long = &H1
Private Const SWP_NOMOVE As Long = &H2
Private Const GC_CLASSNAMEUSERFORM As String = "ThunderDFrame"

Private Sub CommandButton1_Click()
    Call Unload(Me)
End Sub

Private Sub UserForm_Activate()
    Dim lngptrHwnd As LongPtr
    lngptrHwnd = FindWindowA(GC_CLASSNAMEUSERFORM, Caption)
    Call SetWindowPos(lngptrHwnd, HWND_TOPMOST, _
        0&, 0&, 0&, 0&, SWP_NOMOVE Or SWP_NOSIZE)
    Call SetWindowPos(lngptrHwnd, HWND_NOTOPMOST, _
        0&, 0&, 0&, 0&, SWP_NOMOVE Or SWP_NOSIZE)
End Sub

Gruß
Nepumuk

Anzeige
AW: UserForm immer im Vordergrund
19.10.2015 13:41:16
Leah
Hallo Nepumuk
Vielen Dank, leider funktioniert das auch nicht. Wenn Excel schon offen, aber minimiert wird und ich die Datei öffne, bleibt auch die UF im Hintergrund.
Habs jetzt aber doch geschafft mit einer versteckten TextBox und zwar so:
Private Sub UserForm_Initialize()
Message.txFocus.SetFocus
End Sub
Vielen Dank für eure liebe Hilfe, echt super, dass ihr euch immer so Zeit nehmt. Hab schon echt viel von diesem Forum gelernt.
Ganz liebe Grüsse
Leah

24 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige