Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel ausblenden / minimieren mit VBA

Forumthread: Excel ausblenden / minimieren mit VBA

Excel ausblenden / minimieren mit VBA
26.02.2004 12:19:34
Jan P
Hallo,
ich habe einen VBA-Code und eine Arbeitsmappe mit mehreren Arbeitsblättern.
Mein Code (bzw. ein Teil davon):
Das steht in ThisWorkbook:
Option Explicit

Private Sub Workbook_Open()
' Automatisches Einblenden der UserForm beim Öffnen der Datei
USERFORM.Show
End Sub

das steht in der UserForm:
Option Explicit

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' UserForm kann nicht gesclossen werden...
If CloseMode = vbFormControlMenu Then
MsgBox "Nur über die Schaltfläche  zu schließen." & Chr(13) & Chr(13) & "Can only being closed by using button .", vbInformation
Cancel = True
End If
End Sub


Private Sub UserForm_Layout()
' UserForm kann nicht verschoben werden...
Me.Move Application.Width / 2 - Me.Width / 2, Application.Height / 2 - Me.Height / 2
End Sub


Private Sub UserForm_Initialize()
Nun zu meinem Problem:
Ich würde gern die Excel-Arbeitsmappe ausblenden mit Application.Visible = False. Das funktioniert aber nicht, da in der Prozedur "Initialize" auch diverse Veränderungen an den Arbeitsblättern vorgenommen werden (Zellschutz, zellen verändern, Zellen ausblenden, etc.) und ich erhalte eine Windows-Fehlermeldung.
Kann ich das umgehen oder vielleicht Excel minimieren, daß man nicht sieht wie Excel meine Arbeitsblätter aufruft und dort Änderungen vornimmt? Die UserForm wird erst eingeblendet, wenn alle Änderungen in den Blättern abgeschlossen sind - ich würde gern, daß man die UserForm sofort sieht.
danke und Gruß Jan

                    
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Excel ausblenden / minimieren mit VBA
26.02.2004 12:52:17
harry
hallo jan,
Application.WindowState = xlMinimized
liebe grüße,
harry
AW: Danke - und die übrigen 50%..???
26.02.2004 13:37:03
Jan P
Danke schön!
Falls Du Interesse hast, würde es mich freuen, wenn Di mir auch die Anwtort auf meine Frage geben könntest, denn das Minimieren wäre eigentlich nur die zweitbeste Lösung...
MfG Jan P
AW: Danke - und die übrigen 50%..???
26.02.2004 13:56:21
Harry
keep cool!!!
wenn ausblenden nicht funktioniert, kannst du nicht mehr machen als minimieren. oder du lädst die uf im vollbildmodus, dann sieht man excel auch nicht mehr.
allgemeine deklarationen:
'Bildschirmauflösung
Private Declare Function GetSystemMetrics Lib _
"user32" (ByVal nIndex As Long) As Long
Private Const SM_CYSCREEN As Long = 1
Private Const SM_CXSCREEN As Long = 0
'Position
Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal _
lpWindowName As String) As Long
Private Declare Function MoveWindow Lib "user32" (ByVal hwnd _
As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, _
ByVal nHeight As Long, ByVal bRepaint As Long) As Long

bei uf activate:
BildschirmBreite = GetSystemMetrics(SM_CXSCREEN)
BildschirmHöhe = GetSystemMetrics(SM_CYSCREEN)
wHandle = FindWindow(vbNullString, Me.Caption)
MoveWindow wHandle, 0, 0, BildschirmBreite, BildschirmHöhe, 1
Anzeige
AW: Funktioniert leider noch nicht ganz..
26.02.2004 14:22:34
Jan P
Hallo Harry,
ich habe die UF doch schon im Vollbildmodus.
Dein Code hilft leider nicht, da der erst zum Einsatz kommt, wenn die Arbeitsblätter schon bearbeitet wurden.
Sprich: Programm Start. Einblenden der Arbeitsblätter, Abarbeiten der Änderungen auf den Arbeitsblättern, dann erst kommt die UserForm! Die ist auch im Vollbild davor!
Gruß Jan
Anzeige
AW: Funktioniert leider noch nicht ganz..
27.02.2004 11:42:58
harry
dann mach einfach eine start uf wo steht "Programm wird geladen, dies kann einige Minuten in Anspruch nehmen" und lade dann erst die eigentliche uf. kennst du sicher von den ganzen setups oder?
Das wäre ein....
26.02.2004 13:08:15
Karl-Otto Reimann
Hallo Jan
...typisches Beispiel für den Rekorder ;-)
Gruß
Karl-Otto
AW: Meine Frage mit dem Ausblenden....
26.02.2004 13:35:53
Jan P
...und der Fehlermeldung hat aber niemand beantwortet.....
Und da bietet der Recorder sicherlich keine Lösung an, oder???
Vielleicht schaut sich ja jemand nochmal den Eintrag an und versucht dann, freundlicherweise meine Frage zu beantworten oder das bestehende Problem zu lösen.
MfG
Jan P
Anzeige
AW: Meine Frage mit dem Ausblenden....
26.02.2004 18:24:30
Karl-Otto Reimann
Du verrennst Dich mit Deine UF in Bildschirmgröße, dafür sind die Dinger nicht gemacht.
;
Anzeige

Infobox / Tutorial

Excel Arbeitsmappe ausblenden und minimieren mit VBA


Schritt-für-Schritt-Anleitung

Um eine Excel-Arbeitsmappe mithilfe von VBA auszublenden oder zu minimieren, befolge diese Schritte:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den Editor zu öffnen.
  2. Füge den folgenden Code in das "ThisWorkbook"-Modul ein:

    Private Sub Workbook_Open()
       ' Automatisches Einblenden der UserForm beim Öffnen der Datei
       USERFORM.Show
       ' Excel minimieren
       Application.WindowState = xlMinimized
    End Sub
  3. Füge den Code zur UserForm hinzu:

    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
       ' UserForm kann nicht geschlossen werden...
       If CloseMode = vbFormControlMenu Then
           MsgBox "Nur über die Schaltfläche <ENDE> zu schließen.", vbInformation
           Cancel = True
       End If
    End Sub
    
    Private Sub UserForm_Layout()
       ' UserForm kann nicht verschoben werden...
       Me.Move Application.Width / 2 - Me.Width / 2, Application.Height / 2 - Me.Height / 2
    End Sub
  4. Nutze den Code in der UserForm-Initialisierung:

    • Füge den Code hinzu, um die Excel-Arbeitsmappe auszublenden (sofern notwendig):
      Private Sub UserForm_Initialize()
      Application.Visible = False ' Excel ausblenden (funktioniert möglicherweise nicht immer)
      End Sub

Häufige Fehler und Lösungen

  • Fehler: Excel lässt sich nicht ausblenden.

    • Lösung: Stelle sicher, dass der Code für Application.Visible = False an der richtigen Stelle aufgerufen wird. Möglicherweise musst du den Code so anpassen, dass er nach allen Änderungen an den Arbeitsblättern ausgeführt wird.
  • Fehler: Windows-Fehlermeldung beim Ausblenden.

    • Lösung: Nutze stattdessen Application.WindowState = xlMinimized für das Minimieren des Excel-Fensters.

Alternative Methoden

  1. Excel-Fenster minimieren:

    • Wenn das Ausblenden nicht funktioniert, kannst du das Fenster minimieren, indem du in deinem Code Application.WindowState = xlMinimized verwendest.
  2. Vollbildmodus aktivieren:

    • Du könntest die UserForm im Vollbildmodus anzeigen. Das könnte den Excel-Hintergrund ausblenden und das Benutzererlebnis verbessern.

Praktische Beispiele

Hier ist ein einfaches Beispiel, das die Excel-Arbeitsmappe minimiert, während eine UserForm angezeigt wird:

Private Sub Workbook_Open()
    Application.WindowState = xlMinimized ' Excel minimieren
    USERFORM.Show ' UserForm anzeigen
End Sub

Durch diesen Code wird das Excel-Fenster minimiert, und der Benutzer sieht nur die UserForm, während im Hintergrund Änderungen vorgenommen werden.


Tipps für Profis

  • Verwende Bildschirmauflösungen: Um die UserForm optimal anzuzeigen, kannst du die Bildschirmauflösung abfragen und die Größe der Form entsprechend anpassen.

  • Benutze DoEvents: Wenn du Änderungen an den Arbeitsblättern vornimmst, kann es hilfreich sein, DoEvents zu verwenden, um sicherzustellen, dass Excel alle Änderungen verarbeitet, bevor die UserForm angezeigt wird.


FAQ: Häufige Fragen

1. Kann ich Excel vollständig ausblenden? Ja, du kannst versuchen, Application.Visible = False zu verwenden, jedoch ist dies nicht immer stabil. Das Minimieren des Fensters ist oft die bessere Lösung.

2. Wie kann ich die UserForm im Vollbildmodus anzeigen? Verwende den MoveWindow-API-Aufruf, um die UserForm auf die gesamte Bildschirmgröße zu setzen. Dies kann jedoch die Sicht auf Excel selbst blockieren.

3. Warum funktioniert mein Code nicht? Überprüfe, ob der Code an der richtigen Stelle ausgeführt wird. Oftmals kann der Kontext, in dem du den Code platzierst, entscheidend für die Funktionalität sein.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige