Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1212to1216
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 ausblenden

Userform ausblenden
Gerd
Hallo, liebe Excel- und VBA-Freunde!
Ich bitte euch mal wieder um Hilfe bei folgendem Problem:
Über eine Userform (siehe unten) können verschiedene Excel- und Word-Vorlagen aufgerufen werden. Beim Aufruf der Excel-Datei, die die Userform enthält, wird die Userform aufgerufen und das Arbeitsmappenfenster minimiert.
Userbild
Wenn ich eine Schaltfläche anklicke, wird das Eingangsportal (die Userform aus der Grafik) mit Userform.Hide ausgeblendet. Sobald ich in der Taskleiste auf den Eintrag mit dem Eingangsportal klicke, wird die Userform wieder in den Vordergrund geholt über
Private Sub Workbook_Activate()
Application.ActiveWindow.WindowState = xlMinimized
LSchB_FiHi.Show
End Sub
So wird das Portal ja auch beim Öffnen der Datei aufgerufen.
Bis dahin ist alles gut!
Wenn ich nun aber das Portal und eine darüber aufgerufene Excel-Vorlage und dann noch eine dritte Arbeitsmappe öffne habe ich folgende Problem:
Beim Wechsel auf das Portal wird nicht nur die dazugehörige Arbeitsmappe minimiert und das Portal aufgerufen, sondern auch die anderen beiden geöffneten Arbeitsmappenfenster aus dem Vollbild in ein größenverändertes Bild geändert, so als hätte ich das Menü "Fenster --> anordnen..." betätigt. Ich muss dann jedes Mal erst die beiden Fenster maximieren, was zur Folge hat, dass auch das Fenster mit dem Portal maximiert wird.
Warum ist das so?
Es ist ziemlich nervig, dass der Fensterstatus aller geöffneten Arbeitsmappen geändert wird, nur weil ich auf das Portal gewechselt habe.
Weiß irgendjemand Rat?
Falls ich das Ganze zu unverständlich beschrieben habe, meldet euch bitte.
Vielen Dank im Voraus und freundliche Grüße aus dem hohen Norden
Gerd

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Userform ausblenden
05.05.2011 12:59:44
Nepumuk
Hallo,
ändere die Zeile so:
ThisWorkbook.Windows(1).WindowState = xlMinimized

Gruß
Nepumuk
AW: Userform ausblenden
05.05.2011 13:14:29
Gerd
Hallo Nepumuk!
Vielen Dank für Deine Antwort. Leider ändert sich am Verhalten nichts.
Sobald ich in der Taskleiste wieder zur der Datei mit dem Portal wechsle, werden nicht nur das Fenster sondern auch die Fenster der anderen geöffneten Arbeitsmappen verändert (nicht minimiert!) und ich muss sie einzeln wieder maximieren.
Gruß
Gerd
Anzeige
AW: Userform ausblenden
05.05.2011 17:46:48
Nepumuk
Hallo,
komischer Effekt, den bekommen wir nur so in den Griff:
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Activate()
    Application.ScreenUpdating = False
    ThisWorkbook.Windows(1).WindowState = xlMinimized
    UserForm1.Show
End Sub

' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Sub UserForm_Activate()
    ActiveWindow.WindowState = xlMaximized
    Application.ScreenUpdating = True
End Sub

Gruß
Nepumuk
Anzeige
AW: Userform ausblenden
06.05.2011 07:21:32
Gerd
Hallo Nepumuk!
Noch einmal vielen Dank, aber auch der zweite Versuch ändert nichts.
Sobald ich in der Taskleiste zu der Datei mit dem Portal wechsle, werden die anderen Fenster in der Größe verändert und komisch angeordnet.
Tja, werde wohl damit leben müssen.
Trotzdem vielen Dank für Deine Mühe und ein schönes Wochenende.
Gerd
neue Application
06.05.2011 20:53:35
Tino
Hallo,
starte die Excel- Dateien die Du über die Form aufrufst als eigene Application, dann sollte es funktionieren.
Bsp.
Private Sub CommandButton1_Click()
With CreateObject("Excel.Application")
.Visible = True
.Workbooks.Open "G:\Ordner\Dateiname.xls"
End With
End Sub

Gruß Tino
Anzeige
AW: neue Application
09.05.2011 11:28:09
Gerd
Hallo Tino!
Vielen Dank für Deine Lösung. Die funktioniert tatsächlich. Es hat - wenn man das überhaupt so bezeichnen will - nur den einen Nachteil, dass das Starten der Dateien in einer neuen Excel-Instanz länger dauert und man bei häufigen Aufrufen immer die neue Instanz ganz schließen muss, weil man sonst mehrere "leere" Excel-Instanzen in der Taskleiste hat.
Aber das ist nur eine Sache der Gewöhnung.
Die Lösung ist super und macht das lästige maximieren/wiederherstellen der Arbeitsmappenfenster überflüssig. Und das war ja schließlich die Problemstellung.
Noch einmal vielen Dank!
Gerd :-))
Anzeige
nur eine neue Application
09.05.2011 12:23:05
Tino
Hallo,
wenn Du nicht immer für jede Excel- Datei eine neue Application haben willst,
kannst Du es auch so machen.
Beispiel:
kommt als Code in UserForm1
Option Explicit 
 
 
Private Sub CommandButton1_Click() 
    Start_Excel "G:\Ordner\Datei1.xlsm" 
End Sub 
 
Private Sub CommandButton2_Click() 
    Start_Excel "G:\Ordner\Datei2.xls" 
End Sub 
 
 
Private Sub UserForm_Terminate() 
If Not oXL_App Is Nothing Then 
    With oXL_App 
        If .Workbooks.Count = 0 Then 
            .Quit 
        ElseIf .Workbooks.Count = 1 Then 
            If .Workbooks(1).Name Like "*.xlsb" Or .Workbooks(1).Name Like "*.xlb" Then 
                .Quit 
            End If 
        End If 
    End With 
End If 
Set oXL_App = Nothing 
End Sub 
kommt als Code in Modul1
Option Explicit 
 
Public oXL_App As Excel.Application 
 
Sub Start_Excel(strPath$) 
If oXL_App Is Nothing Then 
    Set oXL_App = CreateObject("Excel.Application") 
End If 
 
With oXL_App 
    .Visible = True 
    .Workbooks.Open strPath 
End With 
End Sub 
Gruß Tino
Anzeige
AW: nur eine neue Application
10.05.2011 11:33:58
Gerd
Hallo Tino!
Vielen Dank für den nächsten Vorschlag. Es ändert leider immer noch nichts an der Tatsache, dass, sobald ich auf das Portal zurückgehe (Klick auf den Eintrag in der Taskleiste), die Userform angezeigt wird und die anderen geöffneten Arbeitsmappenfenster in der Darstellung verändert werden.
Ich weiß nicht, wie ich es anders erklären soll, deshalb habe ich die Originaldatei mit dem Portal einmal hochgeladen:

Die Datei https://www.herber.de/bbs/user/74757.xls wurde aus Datenschutzgründen gelöscht


Natürlich sind die ganzen Dateien hinter den Buttons nicht da. Aber so kannst Du zumindest mal den Code der Userform in Gänze sehen.
Vielleicht findest Du ja irgendeinen Bock, den ich da reingeschrieben habe und alle bisherigen Lösungsansätze scheitern lässt.
Viele Grüße
Gerd
Anzeige
AW: Korrektur
11.05.2011 09:06:42
Gerd
Guten Morgen Tino!
Wow! Jetzt kommen wir dann in einen Bereich, wo ich definitiv überfordert bin.
Ich habe versucht, die ganzen Änderungen nachzuvollziehen, bin mir aber nicht sicher, ob es mir gelungen ist.
Du versteckst Excel beim Aufruf des Eingangsportals. So weit so gut. Bei Aufruf einer Excel-Vorlage verschwindet dann auch die Userform. Es bleibt kein Eintrag in der Taskleiste, weil die Applikation nach wie vor auf "visible=false" steht. Davon gehe ich zumindest aus.
Wenn ich nun aber die Arbeit an der Vorlage beendet habe, wie komme ich zurück zum Portal?
Mit Alt+Tab ist keine Eintrag von Excel mehr zu finden. Gehe ich aber in den Task-Manager, sind da mehrere Excel-Instanzen vorhanden und die Excel-Datei mit dem Portal ist offenbar auch noch im Speicher.
Was genau machen die Subs "MinMaxMenu" und "Kill_Application"?
Kannst Du mir da noch einmal auf die Sprünge helfen?
Vielen Dank
Gerd
Anzeige
neue Version mit Erklärung
11.05.2011 17:55:04
Tino
Hallo,
das habe ich so nicht getestet und nicht darauf geachtet,
dass Du die Userform ausblendest beim öffnen von Dateien.
Die Form wird mit Min/Max Button ausgestattet,
damit kannst Du wie andere Win Fenster minimieren/maximieren usw…
Diese sollte sich beim minimieren über den Startbutton legen.
Ansicht Win7
Userbild
Ansicht Win-XP
Userbild
Hier eine angepasste Version, Userform wird beim aufruf von einer
Excel- Datei minimiert und nicht mehr ausgeblendet.
Kill_Application, soll dafür sorgen wenn in der Application keine
Excel- Datei mehr offen ist, diese zu schließen wenn die Form geschlossen wird.
https://www.herber.de/bbs/user/74791.xls
Gruß Tino
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige