Ok here's another try... (testing on my end works with this method)
At the top of your userform code:
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function SetWindowPos Lib "user32" ( _
ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal X As Long, _
ByVal Y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long) As Long
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private mlHwnd As Long
And add this to the userform_initialize code (or put all the code together in a module, put the below code in a sub, and call it from the userform initialize):
mlHwnd = FindWindow("ThunderDFrame", "UserForm1") 'Change "UserForm1" to match the CAPTION (not name) of your userform
Do While mlHwnd = 0
mlHwnd = FindWindow("ThunderDFrame", "UserForm1") 'Change "UserForm1" to match the CAPTION (not name) of your userform
DoEvents
Loop
'Set topmost
SetWindowPos mlHwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
Bookmarks