Symbolleisten verschollen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Symbolleisten verschollen
von: Reinhard
Geschrieben am: 18.03.2005 19:58:48
Hallo Wissende,
bei erstmaligem Dateistart speichere ich den Zustand aller CommandBars in Zelle
A5 ab. Dies geschieht mit der Sub "Symbol"
In einer UF kann man dann 2 Optionsbuttons auswählen, jenachdem wird zelle A7
auf 0 oder 1 gesetzt und die Sub "Symbole" aufgerufen
Ganzer Bildschirm bzw displayfullscreen möchte ich nihct benutzen.
Zwei Fragen dazu:
1--wie blende ich noch die Titelzeile aus?
2--nach mehrmaligen Aufruf von "Symbole" mit A7 = 1 bzw 0 sind unter
Ansicht---Symbolleisten nur noch 3 Möglichkeiten sichtbar, Formular, Standard,
Anpassen. Wie kann ich vermeiden dass die anderen Leistenmöglichkeiten
verschwinden?

Sub Symbol()
Dim Wert As String
Set wsE = Worksheets("Einstellungen")
If wsE.Range("A5") = "" Then
    For Each s In CommandBars
        If s.Visible = True Then
            Wert = Wert & "1"
        Else
            Wert = Wert & "0"
        End If
    Next s
End If
wsE.Range("A5") = Wert
Set wsE = Nothing
End Sub
Sub Symbole()
On Error Resume Next
Set wsE = Worksheets("Einstellungen")
If wsE.Range("A7") = 1 Then
    'Application.DisplayFullScreen = False
    Application.DisplayStatusBar = True
    Application.DisplayFormulaBar = True
    Application.CommandBars("Worksheet Menu Bar").Enabled = True
    ActiveWindow.DisplayWorkbookTabs = True
    Application.DisplayScrollBars = True
    UserForm1.OptionButton3 = True
    For Each s In Application.CommandBars
        n = n + 1
        If Mid(wsE.Range("A5"), n, 1) = "1" Then
            s.Enabled = True
        Else
            s.Enabled = False
        End If
    Next s
Else
    'Application.DisplayFullScreen = True
    Application.CommandBars("Worksheet Menu Bar").Enabled = False
    Application.DisplayStatusBar = False
    Application.DisplayFormulaBar = False
    ActiveWindow.DisplayWorkbookTabs = False
    Application.DisplayScrollBars = False
    UserForm1.OptionButton4 = True
    For Each s In Application.CommandBars
        s.Enabled = False
    Next s
End If
Set wsE = Nothing
End Sub

Bild

Betrifft: AW: Symbolleisten verschollen
von: ransi
Geschrieben am: 18.03.2005 20:34:48
hallo reinhard
Ich verstehe den code und deine fragestellung nicht.
welche symbolleiste soll wann ausgeblendet werden?
welche symbolleiste soll wann wieder eingeblendet werden?
ransi
Bild

Betrifft: AW: Symbolleisten verschollen
von: Reinhard
Geschrieben am: 18.03.2005 20:56:27
Hallo ransi,
wenn ich auf Ansicht---Symbolleisten gehe, kann ich unter vielen Symboleisten wählen, nach Ausführung meines Codes nur noch unter Standard und Formular, sowie dem Menü Anpassen.
Was ich möchte ist, Ausblenden aller möglicherweise eingeblendeten Symbolleisten, unten darf nur noch die Taskleiste von Windows sichtbar bleiben und oben will ich dann noch eine eigene Symbolleiste erstellen, in der man Excel beenden, UFs starten usw kann.
Da dies auch auf fremden Rechnern geschehen soll, möchte ich dort den Ist-Zustand der Symbolleisten beim Dateiöffnen abspeichern um ihn dann mittels Button in einer UF wiederherstellen zu können, bzw. beim Workbook-Close-Ereignis.
Viele Grüße
Reinhard
Bild

Betrifft: AW: Symbolleisten verschollen
von: ransi
Geschrieben am: 18.03.2005 21:10:22
hallo reinhard
so bekommst du ein nacktes Blatt:

Private Sub Worksheet_Activate()
Dim cb As CommandBar
For Each cb In Application.CommandBars
cb.Enabled = False
Next
DoEvents
With ActiveWindow
        .DisplayHeadings = False
        .DisplayOutline = False
        .DisplayZeros = False
        .DisplayHorizontalScrollBar = False
        .DisplayVerticalScrollBar = False
        .DisplayWorkbookTabs = False
    End With
    With Application
        .DisplayFormulaBar = False
        .DisplayStatusBar = False
    End With
End Sub

im worksheet_deactivate must du alles wieder auf true setzen, weil die einstellungen mit den commandbars greifen in der gesamten excelsitzung.
hoffe das hast du gesucht.
ransi
Bild

Betrifft: Danke dir, aber m.T.
von: Reinhard
Geschrieben am: 18.03.2005 21:52:46
Hallo ransi,
ich habe es jetzt nur kurz getestet und noch nicht überprüft, wenn ich alles wieder sichtbar mache ob da auch unter Ansicht---Symboleisten einiges fehlt, okay, mache ich nachher, danke erstmal.
Aber die Titelleiste ist noch vorhanden, wie kriege ich die weg?
Google bracht mich da nicht weiter, da fand ich nur application.caption="", aber ich will die Zeile weghaben.
Gruß
Reinhard
Bild

Betrifft: AW: zu Frage 1
von: Nepumuk
Geschrieben am: 18.03.2005 21:10:52
Hallo Reinhard,
das geht ganz einfach:


Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As StringByVal lpWindowName As StringAs Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
    (ByVal hwnd As LongByVal nIndex As LongAs Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
    (ByVal hwnd As LongByVal nIndex As LongByVal dwNewLong As LongAs Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As LongAs Long
Private Enum constats
    GWL_STYLE = -16
    WS_CAPTION = &HC00000
End Enum
Public Sub test()
    Static bolCaption As Boolean
    Dim lnghWnd As Long, lngStyle As Long
    lnghWnd = FindWindow("XLMAIN", vbNullString)
    If lnghWnd <> 0 Then
        lngStyle = GetWindowLong(lnghWnd, GWL_STYLE)
        If bolCaption Then
            lngStyle = lngStyle Or WS_CAPTION
        Else
            lngStyle = lngStyle And Not WS_CAPTION
        End If
        SetWindowLong lnghWnd, GWL_STYLE, lngStyle
        DrawMenuBar lnghWnd
        bolCaption = Not bolCaption
    End If
End Sub


Gruß
Nepumuk
Bild

Betrifft: aha, Titelleiste ist nun weg *freu*
von: Reinhard
Geschrieben am: 18.03.2005 22:01:01
Hallo Nepumuk,
"das geht ganz einfach" definiere ich aber anders :-)))
Klappt natürlich super.
Merci
Reinhard
Bild

Betrifft: Bearbeitungsleiste und excel.xlb
von: Reinhard
Geschrieben am: 18.03.2005 22:41:03
Hallo Nepumuk,
ich habe jetzt deine Codes und den von ransi laufen lassen.
Anschliessend schaltete ich Excel aus und löschte die Excel.xlb in der Annahme dass dadurch wieder die gewohnte Grundeinstellung dawäre.
Aber die Bearbeitungsleiste fehlte, ich musste sie manuell wieder sichtbar machen.
Wie kann ich sie per Code sichtbar machen? Und warum wird sie von Excel nicht bei fehlender excel.xlb selbst angezeigt?
Viele Grüße
Reinhard
Bild

Betrifft: AW: Bearbeitungsleiste und excel.xlb
von: Nepumuk
Geschrieben am: 18.03.2005 22:59:01
Hallo Reinhard,
die Bearbeitungsleist ist keine Symbolleiste und nur deren benutzerdefinierten Änderungen werden in der .xlb gespeichert. Mein Code blendet die Leiste bein schließen der Mappe aber wieder ein. Einfach diese Zeilen in das Klassenmodul der Mappe:


Option Explicit
Private Sub Workbook_Activate()
    test
End Sub
Private Sub Workbook_Deactivate()
    test
End Sub


Gruß
Nepumuk
Bild

Betrifft: AW: zu Frage 2
von: Nepumuk
Geschrieben am: 18.03.2005 21:20:54
Hallo Reinhard,
würde ich so machen:


Option Explicit
Public Sub test()
    Static bolOnOff As Boolean
    Dim myCommandBar As CommandBar
    With Application
        .ScreenUpdating = False
        .DisplayStatusBar = bolOnOff
        .DisplayFormulaBar = bolOnOff
    End With
    On Error Resume Next
    For Each myCommandBar In Application.CommandBars
        myCommandBar.Enabled = bolOnOff
    Next
    CommandBars("eigene Leiste").Enabled = Not bolOnOff
    ActiveWindow.DisplayWorkbookTabs = bolOnOff
    bolOnOff = Not bolOnOff
    Application.ScreenUpdating = True
End Sub


Gruß
Nepumuk
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Symbolleisten verschollen"