Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1512to1516
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
Inhaltsverzeichnis

Userform immer im Vordergrund halten.

Userform immer im Vordergrund halten.
13.09.2016 11:37:10
Daniel

Hallo
ich arbeite mit Excel 2013 und habe folgendes Problem mit einer Userform:
die Userform (nicht Modal) soll eigentlich zur Bearbeitung von anderen geöffneten Excelmappen dienen.
Die Mappe der Userform wird nicht benötigt und sollte unsichtbar bleiben.
Das Problem ist, wenn ich das Fenster der Userformmappe minimiere, verschwindet auch die Userform.
Wenn ich die andere Mappe aktiviere, überdeckt sie die Userform.
in den ältern Versionen bis 2010 war es so, dass die Userform immer im Vordergrund war und somit andere Mappen problemlos bearbeitet werden konnten.
Wie kann ich auch bei Excel 2013 die Userform unabhängig von der aktiven Mappe immer im Vordergrund halten?
Gruß Daniel

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform immer im Vordergrund halten.
13.09.2016 12:05:37
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 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)
End Sub

Gruß
Nepumuk
Anzeige
AW: Userform immer im Vordergrund halten.
13.09.2016 12:28:31
Daniel
Hi Nepumunk
Danke für deine Antwort.
ich habe den Code jetzt so wie er da steht in ins Modul der Userform übernommen und es funktioniert leider nicht.
Gruß Daniel
AW: Userform immer im Vordergrund halten.
13.09.2016 12:40:59
Nepumuk
Hallo,
kann ich mir nicht vorstellen, ich hab das extra noch getestet und er funktioniert bei mir einwandfrei. Versuch es nochmal in einer neuen Mappe.
Gruß
Nepumuk
AW: Userform immer im Vordergrund halten.
13.09.2016 12:51:23
Daniel
Hi
auch in einer neuen Datei ändert sich am Verhalten nichts.
bei minimiertem Fenster der Userform-Mappe verschwindet auch die Userform.
aktiviert man eine andere Mappe, so liegt die Userform im Hintergrund und wird vom Mappenfenster überdeckt.
verschiebt man die Userform an eine andere stelle, so kann man die andere Mappe einmalig bearbeiten, es wird aber sofort die Mappe der Userform akiviert.
Gruß Daniel
Anzeige
AW: Userform immer im Vordergrund halten.
13.09.2016 12:58:12
Nepumuk
Hallo,
dann weis ich auch nicht weiter. Ich lass die Frage mal offen.
Gruß
Nepumuk
AW: Userform immer im Vordergrund halten.
13.09.2016 14:43:13
Mullit
Hallo,
das könnte in Deinem Spezialfall ungünstig sein, daß Du immer noch die Userform-Mappe minimierst, die solltest Du vielleicht ganz aus dem Weg räumen und die Form über eine zweite Application starten, die Du Visible = False setzt, die Form müsste dann über API in der Taskleiste verankert sein, dann der harte Teil: Du müsstest versuchen von der Form-Application auf die Bearbeitungs-Application zuzugreifen...
Oder wenn alle Stricke reißen und vorhanden, erstellst Du Dir gleich ein Fenster in VisualStudio...
Gruß, Mullit
Anzeige
AW: Userform immer im Vordergrund halten.
13.09.2016 16:07:31
Daniel
Hi
zweite Applikation wäre wahrscheinlich ungünstig, da ich ja einerseits die andere Mappe bearbeiten will, aber schon auf die Daten aus der eigenen Mappe angewiesen bin.
In Excel 2010 ging das problemlos, da die Userform, da die Userform nicht an das Mappen-Fenster gebunden war.
Gruß Daniel
AW: Userform immer im Vordergrund halten.
13.09.2016 16:37:30
Mullit
Hallo,
tja wär wohl nicht so ganz ohne, da fällt mir aber gerade ein, wesentlich einfacher wäre die Verwendung eines Addins oder der Personal.xlsb aus der Du die Form z.B. über deren Open-Event ungebunden startest, auf die Form müsstest Du dann unabhängig von den Mappen zugreifen können, sowie umgekehrt...
Gruß, Mullit
Anzeige
AW: Userform immer im Vordergrund halten.
13.09.2016 16:57:15
Daniel
Hi
Personal.xlsb oder AddIn ist ungünstig.
da will ich eigentlich nur die Sachen drin haben, mit denen nur ich arbeite.
Gruß Daniel
AW: Userform immer im Vordergrund halten.
13.09.2016 16:45:25
Mullit
Hallo,
...hmm allerdings (sprach die Sphinx...) ich hab hier ebenfalls nur xl2010 am Start, könnte natürlich sein, daß xl2013/2016 da auch Schwierigkeiten machen...
Gruß, Mullit

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige