Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1304to1308
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
Fenster nicht über "X" schließen
17.03.2013 12:05:04
Michael
Hallo,
ich habe im Netz den folgenden Code gefunden und angepasst, der meine Wünsche fast vollständig erfüllt. D.h. ich kann meine Fenstergröße einstellen, die Menüleiste usw. ausblenden, das Fenster ist nicht immer im Vordergrund.
Jetzt fehlt mir noch die Funkion das schließen des Fensters über das "X" oben rechts im Fenster zu verhindern bzw. das "X" auszublenden. Ich habe jetzt schon viele Stunden rumexperimentiert aber keine zufriedenstellende Lösung gefunden.
Ich hoffe es kann mir geholfen werden.
Hier mein Code für das Modul1
Option Explicit
Option Private Module
Declare Function SetWindowPos Lib "user32.dll" ( _
ByVal hWnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long) 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
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" ( _
ByVal hWnd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function GetSystemMetrics Lib "user32" ( _
ByVal nIndex As Long) As Long
Private Declare Function SetDoubleClickTime Lib "user32" ( _
ByVal wCount As Long) As Long
Private Declare Function GetDoubleClickTime Lib "user32" () As Long
Private lng_Dctime As Long
Private Const GWL_STYLE = -16
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WM_PAINT = &HF
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_SHOWWINDOW = &H40
Private Const XL_WIDTH = 850 'vorgegebene Breite der Anzeige
Private Const XL_HIGHT = 600 'vorgegebene Höhe der Anzeige
'Fenster einfrieren
Public Sub Fix_Application()
Dim lnghWnd As Long
lnghWnd = FindWindow("XLMAIN", vbNullString)
SetWindowLong lnghWnd, GWL_STYLE, GetWindowLong(lnghWnd, GWL_STYLE) _
And Not (WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)
DrawMenuBar lnghWnd
MoveWindow lnghWnd, GetSystemMetrics(SM_CXSCREEN) / 2 - XL_WIDTH / 2, _
GetSystemMetrics(SM_CYSCREEN) / 2 - XL_HIGHT / 2, XL_WIDTH, XL_HIGHT, WM_PAINT
SetWindowPos lnghWnd, HWND_NOTOPMOST, GetSystemMetrics(SM_CXSCREEN) / 2 - XL_WIDTH / 2, _
GetSystemMetrics(SM_CYSCREEN) / 2 - XL_HIGHT / 2, XL_WIDTH, XL_HIGHT, _
SWP_NOSIZE Or SWP_NOMOVE Or SWP_NOACTIVATE Or SWP_SHOWWINDOW
lng_Dctime = GetDoubleClickTime
SetDoubleClickTime 1
End Sub

'Fenster freigeben
Public Sub Unfix_Application()
SetDoubleClickTime lng_Dctime
Application.WindowState = xlMaximized
End Sub
Danke Michael

26
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fenster nicht über "X" schließen
17.03.2013 13:19:14
Michael
Sehr geehrter Herr Herber,
"Excel-Menü oben links am Fenster ausblenden" das ist leider nicht meine Frage gewesen ?
Ich möchte das "X" ober rechts im Fenster deaktivieren.
Trotzdem danke
Michael Groß

AW: Fenster nicht über "X" schließen
17.03.2013 14:03:11
Hajo_Zi
Hallo Michael,
ich bin nun ja nicht gemeint, aber ich Antworte Trotzdem.
Unter DieseArbeitsmappe.
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel = True
End Sub

wie Du die Datei schließen willst ist mir nicht klar.

AW: Fenster nicht über "X" schließen
17.03.2013 16:33:23
Michael
Sehr geehrter Herr Herber,
das habe ich schon probiert. So kann ich aber die Mappe auch nicht mehr über meinen CommandButon schließen.
Hier der Code
Private Sub CommandButton2_Click()
Application.DisplayAlerts = False
Unfix_Application
Application.Quit
End Sub
Mfg
Michael Groß

Anzeige
AW: Fenster nicht über "X" schließen
17.03.2013 16:35:28
Hajo_Zi
Hallo Michael,
ich bin dann raus.
Vielleicht macht der angesprochene weiter.
Gruß Hajo

RE:AW: Fenster nicht über "X" schließen
17.03.2013 22:32:15
Michael
Hallo Hajo,
in einem anderen Forum habe ich eine akzeptable Lösung gefunden, die mich zufriedenstellt und funktioniert.
So langsam lerne ich und wenn man erst mal anfängt das System zu begreifen sind manche Dinge ganz einfach und vor allem logisch.
'stefan onken
'vor 6 Jahren
'hallo Richard,
'
'im Ereignis WorkBook_BeforeClose() findest du den Parameter Cancel,
'mit Cancel = True wird das schliessen der Mappe und auch von Excel
'verhindert.
'Den Wert von Cancel kannst du zB über eine If-Bedingung einstellen:
'
'

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'If Not SchliessenErlaubt Then Cancel = True
'End Sub

'
'in einem Standardmodul:
'
'Public SchliessenErlaubt As Boolean
'Sub schliessen()
'SchliessenErlaubt = True
'ThisWorkbook.Close
'End Sub
'
'Deinen Button verknüpfst du mit dem Makro schliessen.
'
'Gruß Stefan
Gute Nacht
Michael

Anzeige
RE:AW: Fenster nicht über "X" schließen
17.03.2013 22:32:24
Michael
Hallo Hajo,
in einem anderen Forum habe ich eine akzeptable Lösung gefunden, die mich zufriedenstellt und funktioniert.
So langsam lerne ich und wenn man erst mal anfängt das System zu begreifen sind manche Dinge ganz einfach und vor allem logisch.
'stefan onken
'vor 6 Jahren
'hallo Richard,
'
'im Ereignis WorkBook_BeforeClose() findest du den Parameter Cancel,
'mit Cancel = True wird das schliessen der Mappe und auch von Excel
'verhindert.
'Den Wert von Cancel kannst du zB über eine If-Bedingung einstellen:
'
'

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'If Not SchliessenErlaubt Then Cancel = True
'End Sub

'
'in einem Standardmodul:
'
'Public SchliessenErlaubt As Boolean
'Sub schliessen()
'SchliessenErlaubt = True
'ThisWorkbook.Close
'End Sub
'
'Deinen Button verknüpfst du mit dem Makro schliessen.
'
'Gruß Stefan
Gute Nacht
Michael

Anzeige
Zitat:: So langsam lerne ich ... Was denn ?
18.03.2013 18:16:11
Matthias
Ich antworte jedenfalls nicht mehr auf Fragen von Micheal Groß
Wahrscheinlich liegts am Level.
Immer wenn ich lese: Excel gut ahne ich schon Benehmen nicht gut ;-(
Das gilt nicht für alle, aber für Dich schon.
siehe auch hier:
https://www.herber.de/forum/archiv/1300to1304/t1303504.htm#1303504
Wenn Du es voziehst nur mit bestimmten Usern zu kommunizieren solltest Du das in einem Chat machen und nicht in einem Forum.
Also schweb weiter auf Deiner Wolke, Bei mir bist Du im Moment auf der schwarzen Liste.
und Tschüß ... :-(

Anzeige
Zitat:: So langsam lerne ich ... Was denn ?
18.03.2013 19:14:07
Michael
Sehr geehrter Herr Matthias L.,
ich weis zwar nicht was ich falsch gemacht habe, dass Sie sich genötigt sehen so einen Schmarn von sich zu geben.
Ich habe mich weder im Ton vergriffen noch irgendwelche Anfeindungen von mir gegeben. Meine persönliche Antwort an Herrn Herber war der Höflichkeit geschuldet, da er auf meinen Beitrag geantwortet hat und ich mich bedanken wollte.
Wenn Sie sich dabei persönlich als "ignoriert" betrachten ist das Ihre Einschätzung.
Im Übrigen ist es für mich eine Frage des Anstandes ein Posting mit eine Anrede zu beginnen.
Ob ich auf Ihrer schwarzen Liste (schon dieser Ausdruck zeigt wessen Geistes Kind sie sind) stehe oder nicht interessiert mich herzlichst wenig.
Einen schönen guten Abend und passen Sie auf, dass Sie nicht von Ihrer Wolke fallen.
Mit freundlichen Grüßen
Michael Groß

Anzeige
AW: Zitat:: So langsam lerne ich ... Was denn ?
18.03.2013 19:17:48
Hajo_Zi
Hallo Michael,
Im Übrigen ist es für mich eine Frage des Anstandes ein Posting mit eine Anrede zu beginnen.

dannn solltest Du bei der Anrede aber nicht den Zufall walten lassen, sondern auch den Namen benutzen der unter der Antwort steht.
Gruß Hajo

AW: Zitat:: So langsam lerne ich ... Was denn ?
18.03.2013 20:28:47
Michael
Sehr geehrter Herr Herber,
sorry für meinen Leichtsinnsfehler.
Aber ich möchte diese Art von Diskussion eigentlich nicht, das war nicht meine Absicht.
Ihr Forum und auch Ihre Excel-Hilfe deren Abonnement ich schon viele Jahre bin hat mir so oft weiter geholfen, dass ich an ein einer Konfrontation absolut nicht interessiert bin.
Ich bin mir auch nicht sicher welchen Fehler ich gemacht habe.
MfG
Michael Groß

Anzeige
AW: Zitat:: So langsam lerne ich ... Was denn ?
18.03.2013 21:00:19
Hajo_Zi
ich kann mich nur wiederholen, und schließe mich meinem Vorredner an.
dannn solltest Du bei der Anrede aber nicht den Zufall walten lassen, sondern auch den Namen benutzen der unter der Antwort steht

Für mich ist Schluss.
Gruß Hajo

AW: Zitat:: So langsam lerne ich ... Was denn ?
18.03.2013 21:23:38
Michael
Für mich auch

Wenn Schluß warum offen? und Closed
18.03.2013 23:03:08
Matze

Wenn Schluß warum offen? und Closed
18.03.2013 23:26:52
Level:
Hallo,
ist das notwendig?
Sollten sich erwachsene Menschen wirklich so duellieren?
Michael

Lern erst mal die Regeln eines Forums! kwT
18.03.2013 19:26:22
Matthias

Lern erst mal die Regeln eines Forums! kwT
18.03.2013 20:32:41
Michael
Und was willst du mir damit sagen ?

Anzeige
das steht im Betreff ... kwT
18.03.2013 20:43:23
Matthias

So, das ist ja hier amüsant geworden, hatte ...
21.03.2013 03:43:26
Luc:-?
…ich gar nicht bemerkt! ;-))
Lieber Michael,
na, da bist du ja wohl in so sämtliche Fettnäpfchen getreten, in die man in einem Forum nur treten kann. Sieht gar nicht gut für dich aus…
1. Du hast einen Link von Hajo zu einem Material des Forumsbetreibers auf den Service-Seiten als eine Antwort desselben betrachtet und fortan Hajo ehrfurchtsvoll mit Sehr geehrter Herr Herber und Sie angeredet, was in Foren absolut unüblich ist. HWH, der Forumsbetreiber war aber zu keinem Zeitpunkt hier involviert, ja er weiß höchstwahrscheinlich nicht mal was davon, denn die Mails die du zuhause bekommst, schickt der Server automatisch. Das dürfte für spätere Nutzer des Archivs (u.ggf auch der Archiv-CD) noch jahrelang ein Brüller sein.
2. Du hast die frühzeitige Antwort von MatthiasL schlichtweg ignoriert, so warst du auf den sehr geehrten Herrn Herber, der eigentlich Hajo war, konzentriert. Das war natürlich eine grobe Unhöflichkeit.
3. Du hast zwar bis zum Schluss versucht, einigermaßen die Haltung zu bewahren, aber letztlich alle Beteiligten mit deinem sturen Unverständnis vor den Kopf gestoßen. Auch bist du dabei wieder zu einem, diesmal abständigen Sie übergegangen, wodurch du dir den Hinweis auf die Forumsregeln eingehandelt hast.
Irgendwie erinnert mich das Ganze an die Geschichten von Wedekind, die ganz harmlos beginnen und dann in eine totale Katastrophe münden. Ich muss dir ehrlich sagen, seit den Großen Haufen vor Jahren im Heim- und Handwerkerforum, Abteilung Sanitär, habe ich nicht mehr so über einen Thread gelacht. Danke für diese köstliche Einlage! ;-))
Mit besonders freundlichen Grüßen, Luc :-?

Anzeige
amüsant ?
21.03.2013 09:38:21
Michael
Lieber Luc:-?,
danke für die umfängliche Aufklärung. Jetzt ist mir wenigstens bekannt was ich "falsch" gemacht habe.
Mir war nicht bewusst, das ich User ignoriert habe, sorry bzw. nicht involvierte User als Absender angesehen habe. Ein kleiner freundlicher Hinweis hätte genügt. Das es dann so ausgeartet ist tut mir leid.
Aber wie immer im Leben hat alles Schlechte auch sein Gutes.
So war ich gezwungen mich intensiv mit der Lösung meines Problems zu beschäftigen und ich habe es gelöst.
Der Zeitaufwand war mit Sicherheit größer, aber für mich nicht umsonst. Auch dafür danke.
Damit ist der Vorgang für mich erledigt.
Danke
Michael

amüsant !
21.03.2013 11:57:15
Klaus
Hallo Michael,
es kann kaum Zufall sein ... du hast gerade ein weiteres Forumsgesetz gebrochen ;-)
Du schreibst:
Damit ist der Vorgang für mich erledigt.
Lässt aber den Haken bei "Beitrag noch offen" :-)
Ich mach hier mal für dich zu, bevor du dir die üblichen "ich sehe nicht was noch offen ist" Kommentare von Hajo/Herrn Herber einhandelst.
Grüße,
Klaus M.vdT.

Amüsant ? Für Andere, weniger für dich! ;-) orT
21.03.2013 14:10:17
Luc:-?
Gruß Luc :-?

Wortspiel, Luc?
21.03.2013 14:17:23
Klaus
Hallo Luc,
war der Subtext zwischen "Großer Haufen" und "köstlicher Einlage" Absicht? Wenn ja, bist du ein Meister des subtilen Humors!
Grüße,
Klaus M.vdT.

Erst war's Zufall, dann fiel's mir auch auf, ...
21.03.2013 14:58:51
Luc:-?
…Klaus;
musste gleich an den „cleveren“ Thread denken…
Apropos, manchmal gelingt mir so etwas tatsächlich, aber deshalb gleich Meister…?
Gruß Luc :-?

Na das Wortspiel war ja so wirklich amüsant ;-)
21.03.2013 18:27:17
Matthias
kwT ...

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige