Anzeige
Archiv - Navigation
340to344
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
340to344
340to344
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Menüleiste - vbCmdBar aus Service Downloads

Menüleiste - vbCmdBar aus Service Downloads
23.11.2003 17:40:19
Sascha
Hallo,

hab mittels vbCmdBar aus dem Downloadbereich eine neue Menüleiste erstellt.

Mittels Application.DisplayFullScreen = True und Application.CommandBars("Worksheet Menu Bar").Enabled = False sind die anderen Menüleisten ausgeblendet.

Die neue Menüleiste hat am rechten Rand das typische X sowie minimieren maximieren.

Wie kann ich diese Anzeige ausblenden?

Danke
Sascha

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Menüleiste - vbCmdBar aus Service Downloads
23.11.2003 17:54:34
Nepumuk
Hallo Sascha,
ich kann es nicht real testen, da ich deine Leiste nicht habe. Versuch es mal damit:


Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) 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
Public Const GWL_STYLE = (-16)
Public Const WS_SYSMENU = &H80000
Public Sub Hide_SYSMENU()
Dim xl_hwnd, lStyle
xl_hwnd = FindWindow("xlMain", vbNullString)
If xl_hwnd <> 0 Then
lStyle = GetWindowLong(xl_hwnd, GWL_STYLE)
lStyle = SetWindowLong(xl_hwnd, GWL_STYLE, lStyle And Not WS_SYSMENU)
DrawMenuBar xl_hwnd
End If
End Sub
Public Sub Show_SYSMENU()
Dim xl_hwnd, lStyle
xl_hwnd = FindWindow("xlMain", vbNullString)
If xl_hwnd <> 0 Then
lStyle = GetWindowLong(xl_hwnd, GWL_STYLE)
lStyle = SetWindowLong(xl_hwnd, GWL_STYLE, lStyle Or WS_SYSMENU)
DrawMenuBar xl_hwnd
End If
End Sub



Code eingefügt mit: Excel Code Jeanie

Wenn es nicht klappt, dann kann ich nur mit deiner Mappe weiterhelfen.
Gruß
Nepumuk
Anzeige
AW: Menüleiste - vbCmdBar aus Service Downloads
23.11.2003 18:13:50
Jochen
Hallo,

tolle Sache. Hast du auch eine Lösung, dass man das Excelfenster
nicht in der Größe verändern kann? Ich meine, wenn es beim Start
nicht maximiert ist, es durch ziehen an den Rändern nicht verändert
werden kann?

Grüße von Jochen
AW: Menüleiste - vbCmdBar aus Service Downloads
23.11.2003 18:36:31
Nepumuk
Hallo Jochen,
mit folgendem Programm ist die Mappe weder in der Größe zu verändern noch zu verschieben. Du musst dann nur noch den Code aus meiner Antwort für Sascha benutzen um die Buttons wiederherstellen / maximieren / schließen zu löschen, damit der User nicht mit diesen arbeitet.


Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Const MF_BYCOMMAND = &H0
Private Const SC_MOVE = &HF010
Private Const SC_SIZE = &HF000
Public Sub Suspend_change()
Dim hwnd As Long, hwndMenu As Long
hwnd = FindWindow("xlMain", vbNullString)
If hwnd <> 0 Then
hwndMenu = GetSystemMenu(hwnd, 0)
If hwndMenu <> 0 Then
DeleteMenu hwndMenu, SC_SIZE, MF_BYCOMMAND 'Größe ändern aus
DeleteMenu hwndMenu, SC_MOVE, MF_BYCOMMAND 'Verschieben aus
End If
End If
End Sub



Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk
Anzeige
AW: Menüleiste - vbCmdBar aus Service Downloads
23.11.2003 18:47:02
Jochen
Hallo,

danke, das hab ich schon lange gesucht.

Grüße von Jochen
AW: Menüleiste - vbCmdBar aus Service Downloads
23.11.2003 18:51:00
Sascha
Hallo,

ich habs nicht zum laufen bekommen.

Hier mal meine Mappe:

https://www.herber.de/bbs/user/2119.xls

Danke

Sascha
AW: Menüleiste - vbCmdBar aus Service Downloads
23.11.2003 19:23:25
Nepumuk
Hallo Sascha,
ich habe zwei Zeilen in das Workbook_Open - Ereignis eingefügt. Das wars.


Private Sub Workbook_Open()
' Makroablauf am Bildschirm aus
Application.ScreenUpdating = False
Application.DisplayFullScreen = True
Application.CommandBars("Worksheet Menu Bar").Enabled = False
Call CreateCmdBar
Call CreateControl
'Sub Bildschirm_optimieren()
'Bildschirmansicht wird maximiert:
If Application.WindowState <> xlMaximized Then Application.WindowState = xlMaximized
'Tabellenansicht wird maximiert:
ThisWorkbook.Unprotect "SASCHA"
If ActiveWindow.WindowState <> xlMaximized Then ActiveWindow.WindowState = xlMaximized
ThisWorkbook.Protect "SASCHA", True, True
'End Sub
' Makroablauf am Bildschirm ein
Application.ScreenUpdating = True
End Sub



Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk
Anzeige
AW: Menüleiste - vbCmdBar aus Service Downloads
23.11.2003 20:36:22
Sascha
Hallo,

mit Unprotect,Protect wird doch nicht das x, min, max in der Symbolleiste ausgeblendet. Das verstehe ich jetzt nicht.

Wo muß denn Dein Code hin?

Sascha
AW: Menüleiste - vbCmdBar aus Service Downloads
23.11.2003 20:47:17
Nepumuk
Hallo Sascha,
das X , min , max ist nicht in der Symbolleiste sondern das kommt von der Leiste über dem Tabellenblatt. Wenn du in der Mappe den Arbeitsmappenschutz setzt und zusätzlich zur Strucktur auch die Fenster (dafür steht das zweite True) schützt, ist das X usw. ausgeblendet. Also, nicht meckern, sondern ausprobieren.
Gruß
Nepumuk
Sorry
23.11.2003 20:58:44
Sascha
Hallo,

sorry, ich wollte keinesfalls meckern. Es ging lediglich um mein Verständnis. Hatte den Zusammenhang nicht verstanden.

Ich möchte hier nochmals betonen, das dieses Forum echt genial ist. Schnelle kompetente Hilfe.

Ich müßte ja bescheuert sein, wenn ich diese Hilfe mit Füßen treten würde.

Also nochmals Entschuldigung, wenn ich mich misverständlich ausgedrückt habe.

Habe natürlich das ganze ausprobiert und festgestellt das es funktioniert.

Danke für Deinen Tipp/Hilfe

Sascha
Anzeige
AW: Sorry
23.11.2003 21:27:47
Nepumuk
Hallo Sascha,
ich fühlte mich nicht auf die Füße getreten. Wenn etwas, was ich vorschlage, nicht funktioniert, dann sollst du das sagen. Aber wie geschrieben, erst nachdem du es versucht hast.
Gruß
Nepumuk
AW: Sorry
23.11.2003 21:40:48
Sascha
Hallo,

okay, werde künfitg erst testen, dann ggf. nach dem Warum fragen.

Nochmals Sorry.

Sascha

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige