Herbers Excel-Forum - das Archiv

schließen mit Makro

Bild

Betrifft: schließen mit Makro
von: Tina

Geschrieben am: 14.12.2006 20:56:15
Hallo Leute
kann mir jemand sagen wie man den oberen Rand von einer Excel Datei ausblendet und ein Makro erstellt das die Aufgaben vom dem ( X ) übernimmt.
Gruß Tina
Bild

Betrifft: AW: schließen mit Makro
von: EtoPHG

Geschrieben am: 14.12.2006 21:06:41
Hallo Tina,
Wenn Du mit dem oberen Rand den Standard-Windows-Fensterbalken meinst:
Vielleicht mit sehr sehr schwierigen Programmteilen die sich der Windows API's und anderer Gemeinheiten bedienen.
Aufgaben vor dem Schliessen:
In DieseArbeitsmappe:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Msgbox "Jetzt komm erstmal ich!"
End Sub

Gruss Hansueli
Bild

Betrifft: AW: schließen mit Makro
von: Alexander

Geschrieben am: 15.12.2006 01:03:48
>>> Ins Starmodul folgenden Code
Option Explicit
Private Sub Workbook_Open()
Call SetEnabledFalse 'Schließkreuz sperren
End Sub

In ein Standartmodul folgenden Code
Declare Function FindWindowA Lib "user32" (ByVal lpClassName As Any, ByVal lpWindowName As String) As Long
Declare Function GetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Integer) As Long
Declare Function SetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Integer, ByVal dwNewLong As Long) As Long
Global Const GWL_STYLE = (-16)
Global Const WS_SYSMENU = &H80000
Sub RemoveControlMenuExcel32()
Dim WindowStyle As Long
Dim hWnd As Long
Dim WindowName As String
Dim result
WindowName = Application.Caption
hWnd = FindWindowA(0&, WindowName)
WindowStyle = GetWindowLongA(hWnd, GWL_STYLE)
WindowStyle = WindowStyle And (Not WS_SYSMENU)
result = SetWindowLongA(hWnd, GWL_STYLE, WindowStyle)
End Sub
Sub RestoreControlMenuExcel32()
Dim WindowStyle As Long
Dim hWnd As Long
Dim WindowName As String
Dim result
WindowName = Application.Caption
hWnd = FindWindowA(0&, ByVal WindowName)
WindowStyle = GetWindowLongA(hWnd, GWL_STYLE)
WindowStyle = WindowStyle Or WS_SYSMENU
result = SetWindowLongA(hWnd, GWL_STYLE, WindowStyle)
End Sub
Sub SetEnabledTrue()
Application.CommandBars("Worksheet Menu Bar").Controls("Datei").Controls("Beenden").Enabled = True
Call RestoreControlMenuExcel32
End Sub
Sub SetEnabledFalse()
Application.CommandBars("Worksheet Menu Bar").Controls("Datei").Controls("Beenden").Enabled = False
Call RemoveControlMenuExcel32
End Sub
Fogenden Code ebenfalls in ein Standartmodul und der Schaltfläche ""BEENDEN"" zuweisen (Schaltfläche Beenden)
Sub Beenden()
Call SetEnabledTrue
Application.Quit
Application.DisplayAlerts = True
End Sub
 Bild