Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
19.10.2017 08:12:00 |
Bernd |
|
|
Userform immer in den Vordergrund bringen |
19.10.2017 11:15:31 |
fkw48 |
|
|
|
23.10.2017 10:45:20 |
Bernd |
|
|
|
23.10.2017 18:10:19 |
fkw48 |
|
|
Von:
fkw48 |
Datum:
19.10.2017 11:15:31 |
Views:
1915 |
Rating:
|
Antwort:
|
Thema:
Userform immer in den Vordergrund bringen |
Meine Anleitung zu Excel 2013-32bit und W7 dürfte auch bei dir passen
Prinzip:
(d)eine Userform mit folgendem Aufbau im Code der Userform
Deklarationen
API-Funktion SetWindowPos
(siehe https://www.activevb.de/cgi-bin/apiwiki/SetWindowPos)
API-Funktion FindWindow
(siehe https://activevb.de/cgi-bin/apiwiki/FindWindow)
ggf. Konstante (oder du übergibst du alle Parameter direkt?)
Private Const SWP_NOMOVE = &H2
'
Private Const HWND_TOPMOST = -1
'
usw.
Private Sub UserForm_Activate()
dim hwnd as long
Schritt 1 - FindWindow(vbNullString, Me.Caption) dann hast du das Handle(hwnd) des Userform Fensters
Schritt 2 - der Funktion SetWindowPos übergibst du
- Handle(hwnd) als long
- hWndInsertAfter mit - 1 (HWND_TOPMOST)
- die 4 Positionen mit 0 (soll ja nicht verschoben werden)
- wFlags als Kombination aus (SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE)
d.h. alle Parameter wie auf dem o.g. Link erklärt
Wird du Userform geschlossen (Command oder X), dann soll die Applikation natürlich wieder in den Vordergrund, d.h.
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'
Application.Visible = True
Hattu deine Userform so präpariert dann lege den Aufruf so in ein VBA Modul
(wie eine eigene Klasse)
Option Explicit
Dim myForm As UserForm1
Sub ShowmyForm()
Set myForm = New UserForm1
myForm.Show vbModeless
End Sub
|
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
19.10.2017 08:12:00 |
Bernd |
|
|
Userform immer in den Vordergrund bringen |
19.10.2017 11:15:31 |
fkw48 |
|
|
|
23.10.2017 10:45:20 |
Bernd |
|
|
|
23.10.2017 18:10:19 |
fkw48 |
|
|