Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1960to1964
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

Excel minimieren, während Userform offen ist

Excel minimieren, während Userform offen ist
23.01.2024 16:05:45
DonJuan880
Hallo Gemeinde,

ich habe in Excel ein etwas aufwändigeres Programm geschrieben, das ich auf der Arbeit verwende.
Grundsätzlich soll es durch die Benutzung von Userforms "idiotensicher" und anwenderfreundlich sein, ohne Excel-Kenntnisse zu benötigen.

Im Hintergrund gibt es 3 Tabelleblätter als Datenbanken. Die Datenbanken werden über Userforms befüllt und editiert. In den Userforms arbeite ich u.A. mit Listboxen, um gefiterte Datensätze darzustellen.

Ich weiß, dass Excel eigentlich nicht das beste ist für solch umfangreiche Anwendungen. Die Rechner auf der Arbeit lassen aber kein Access oder andere Software zu.

Jetzt zu meinem Problem:
Ich möchte, dass zunächst ausschließlich mein Userform zu sehen ist und Excel mit seiner Tabelle im Hintergrund unsichtbar wird.
Aktuell habe ich das über eine Prozedur zum minimieren von Excel gelöst. Excel wird minimiert und dann die Userform geladen. Das erfüllt seinen Zweck. Jedoch wenn ich einmal in die Tasklseiste auf die Excelinstanz klicke, wird die Tabelle hinter der Userform maximiert und lässt sich auch nicht wieder minimieren.


Ich habe schon viel selbst recherchiert, jedoch keine gute Lösung gefunden.

Hat hier jemand noch eine Idee, wie ich das elegant lösen kann? Am besten wäre, wenn Excel mit seiner Tabelle aus der Taskleiste verschwinden würde und die Userform einen eigenen Taskleistendingenskirchens hätte.
Excel aus der Taskleiste ausblenden habe ich auch schon geschafft, aber dann komme ich nie wieder in die Userform, wenn ich außerhalb dieser geklickt habe.

Achso, noch zu erwähnen wäre vielleicht, dass es Arbeitsschritte gibt, wo der User doch die Tabelle im Vordergrund angezeigt bekommen soll. Ich habe hier dann alle Menüs ausgeblendet und arbeite mit commandbuttons im Tabellenblatt. Entsprechend muss das Programm also flexibel sein hinsichtlich aus- und einblenden des Excel-Tabellenblatts.

Ich hoffe, ich konnte mich verständlich ausdrücken.

Danke & Grüße!
DonJuan

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

Betreff
Datum
Anwender
Anzeige
AW: Excel minimieren, während Userform offen ist
23.01.2024 16:25:59
volti
Hallo DonJuan,

konnte mich mit Deinem Problem aus Zeitgründen noch nicht ausgiebiger beschäftigen, aber vielleicht ist dieser Beitrag hier ja hilfreich für Dich.
https://www.clever-excel-forum.de/Thread-Userform-Ein-Ausblenden-via-Tray-Icon

Und hier auch noch was zum lesen...
https://www.herber.de/forum/archiv/1896to1900/1898854_Userform_in_Taskleiste.html#1899622
https://www.herber.de/forum/cgi-bin/call_thread.pl?index=1898854
https://www.herber.de/forum/cgi-bin/call_thread.pl?index=1900000

Das Hochladen einer Beispielmappe ist übrigens auch oft hilfreich.

Gruß
Karl-Heinz
Anzeige
AW: Excel minimieren, während Userform offen ist
23.01.2024 17:29:58
Uduuh
Hallo,
nicht minimieren, sondern ausblenden.
z.B.
Private Sub UserForm_Activate()

Application.Visible = False
End Sub

Private Sub UserForm_Terminate()
Application.Visible = True
End Sub

Gruß aus'm Pott
Udo
AW: Excel minimieren, während Userform offen ist
23.01.2024 20:09:46
DonJuan880
Das ist schon mal ganz cool. Aber es fehlt dann ein Taskleisteneintrag. Nicht jeder weiß, dass man mit ALT-TAB die PRogramme durchswitchen kann. Aber scheinbar kann man ja für eine Userform auch einen Taskleisteneintrag erzeugen. Da lese ich mich jetzt mal ein.

Danke schon mal
AW: Excel minimieren, während Userform offen ist
23.01.2024 23:56:03
DonJuan880
Also ich habe mich jetzt an Euren Tipps orientiert und bin ein ganzes Stück weiter. Mit dem Code, den Karl-Heinz in seiner letzten Antwort verlinkt hat, habe ich für meine Userforms einen eigenen Taskleisteneintrag erzeugt. Das funktioniert super.

Den Tipp von Udo habe ich auch umgesetzt und lasse Excel nicht mehr minimieren, sondern applicaiton.visible = False.

So weit so gut. Jetzt habe ich nur das Problem, dass mit application.visible = false auch andere Excel-Fenster unsichtbar gemacht werden.
Wenn ich richtig liege, müsste ich also mein Programm in einer separaten Excel-Instanz öffnen lassen.

Wenn ich es manuell erzwinge, läuft dann auch alles so, wie ich es möchte. Aber wie kann ich das automatisch per Code in einer neuen Instanz starten lassen?
Vermutlich muss ich eine weitere "Start-Datei" erstelllen, in der dann der Code ausgeführt wird, um mein PRogramm in einer anderen Instanz zu starten?

Habe das bisher. Läuft aber nicht so wie es soll:

Sub ProgrammStarten()

Dim appXL As Excel.Application
Dim Datei As String
Dim ws As Worksheet

Set ws = ThisWorkbook.Sheets("Tabelle1")
Datei = ws.Cells(1, 1).Value

' Neue Excel-Instanz starten
Set appXL = New Excel.Application
With appXL
.Visible = True
.Workbooks.Open Filename:=Datei, ReadOnly:=False 'Dateipfad bzw. Dateiname anpassen!
End With

' Aktuelle Datei speichern und schließen
ThisWorkbook.Save
ThisWorkbook.Close False ' Verwende False, um Änderungen nicht zu speichern

' Beende die aktuelle Excel-Instanz
Application.Quit
End Sub


Das Problem ist, dass dieses Start-Programm quasi einfriert, wenn meine andere Instanz geöffnet wird (hier wird sofort eine Userform geladen). Erst wenn ich in meinem eigentlichen Prgramm auf das Tabellenblatt gehe, arbeitet der Code im Start-Programm weiter.

Wie würdet Ihr vorgehen?
Danke Euch!
Anzeige
AW: Excel minimieren, während Userform offen ist
24.01.2024 09:55:28
volti
Hallo DonJuan,

ich habe mich mit diesem Problem noch nie beschäftigt und auch keine Lösung.

Wenn ich allerdings interne wie externe Dialogboxen, bei denen der Code erst weiterläuft, wenn etwas geklickt wurde, überwinden möchte, verwende ich gerne eine Timerproc.
Vielleicht kann das hier ja auch klappen.
Hier mal ein, leider ungetestetes, Muster als Anregung. Kannst Du ja mal ausprobieren....

Code:


Declare PtrSafe Function SetTimer Lib "User32" ( _ ByVal hWnd As LongPtr, ByVal nIDEvent As LongPtr, _ ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As LongPtr Declare PtrSafe Function KillTimer Lib "User32" ( _ ByVal hWnd As LongPtr, ByVal nIDEvent As LongPtr) As Long Dim mhTimer As LongPtr Dim moWBk As Object, moApp As Object Sub MyCallbackProc() ' Aktuelle Datei speichern und schließen KillTimer 0&, mhTimer moWBk.Save moWBk.Close False ' Verwende False, um Änderungen nicht zu speichern ' Beende die aktuelle Excel-Instanz moApp.Quit End Sub Sub ProgrammStarten() Dim appXL As Excel.Application Dim Datei As String Dim ws As Worksheet Set moWBk = ThisWorkbook Set moApp = Application Set ws = moWBk.Sheets("Tabelle1") Datei = ws.Cells(1, 1).Value ' Neue Excel-Instanz starten mhTimer = SetTimer(0&, 0&, 100, AddressOf MyCallbackProc) Set appXL = New Excel.Application With appXL .Visible = True .Workbooks.Open Filename:=Datei, ReadOnly:=False 'Dateipfad bzw. Dateiname anpassen! End With End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz
Anzeige
AW: Excel minimieren, während Userform offen ist
24.01.2024 11:24:57
DonJuan880
Moin Karl-Heinz,

heute Nacht im Bett kam mir die LÖsung für mein Problem (Exceldatei soll immer in einer neuen Instanz geöffnet werden):

Ich erstelle eine Verknüfpung zur excel.exe mit dem Parameter /x. Der sorgt dafür, dass eine neue Instanz geöffnet wird. mit /e bleibt auch noch der Excel-Startbildschirm weg und man sieht gar nicht mehr, dass man mit Excel zu tun hat.

Verknüpfungziel:
"C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE" /x /e "G:\Meine Ablage\Excel-Dokumente\ProgrammXY\ProgrammXL.xlsm"
AW: Excel minimieren, während Userform offen ist
23.01.2024 16:32:56
DonJuan880
Hallo Karl-Heinz,

danke für Deine schnelle Antwort. Ich werde mich heute Abend durch die Threads fressen, die Du verlinkt hast.
Wenn ich nicht weiterkommen sollte, melde ich mich nochmal.

Mein komplettes Programm kann ich wegen sensilber Daten nicht zur Verfügung stellen. Aber ich könnte ein Minprogramm mit den wichtigsten Prozeduren machen, um das Problem darzustellen.

Many thanks!
DonJuan
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige