Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
368to372
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
368to372
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

symbolleiste

symbolleiste
25.01.2004 15:30:10
Denise
Hi!
ich möchte in einer selbsterst. Symbolleiste einen befehl machen, der alle geöffneten Excel Dateien auflistet und beim klick auf eine diese aktiviert.....
Denise

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

Betreff
Datum
Anwender
Anzeige
AW: symbolleiste
25.01.2004 15:32:23
Ramses
Hallo
eignet sich damit nicht der schon integrierte Befehl "Fenster" ?
Warum das Rad neu erfinden ?
Gruss Rainer
AW: symbolleiste
25.01.2004 15:38:11
Denise
Hallo Ramses!
Habe die standard Leisten komplett ausgeblendet.......
(hab ich hier aus dem Forum!!) :-)

Denise
Teillösung: Noch offen...
25.01.2004 16:42:27
Ramses
Hallo
damit erstellst du eine Symbolleiste in der alle gerade aktiven Fenster sichtbar / aufgelistet sind.


Option Explicit
Const symName As String = "Ramses"

Sub Beispielmenu_Fenster()
'(C) Ramses
Dim myBtn As Object
Dim CBB As Object
Dim CB As Object
Dim As Integer, mCounter As Integer
mCounter = 1
On Error Resume Next
'falls vorhanden, erstmal vorsichtshalber löschen
Application.CommandBars(symName).Delete
Set CB = Application.CommandBars.Add(symName)
Set CBB = CB.Controls.Add(msoControlPopup)
With CBB
    .Caption = "Menü made by " & symName
    .Width = 140
    .BeginGroup = True
End With
'Hinzufügen von Mappen
For i = 1 To Workbooks.Count
    If Workbooks(i).Name <> "PERSONL.XLS" Then
        Set myBtn = Application.CommandBars(symName).Controls(mCounter)
        With myBtn.CommandBar.Controls.Add(Before:=mCounter, Type:=msoControlButton)
            .Caption = Workbooks(i).Name
            .OnAction = "Activate_WB"
            .FaceId = 0
            .BeginGroup = True
        End With
        mCounter = mCounter + 1
    End If
Next i
CB.Visible = True
End Sub

Private Sub activate_WB(wbStr As String)
'Hier hört es auf
'Ich weiss noch nicht, wie ich das WB aktiviere
Workbooks(wbString).Activate
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Das Poblem ist, dass ich gerade einen Knopf in der Leitung habe, weil ich nicht weiss wie ich die Beschriftung des Menüeintrags zur Übermittlung an das aufzurufende Makro übermitteln kann, damit das entsprechende Workbook aktiviert wird.
Gruss Rainer
Anzeige
AW: Teillösung: Noch offen...
25.01.2004 16:48:49
Denise
Bis hier hin schon mal danke!!!!!
ich habe schon eine symbolleiste erstellt, wo müsste dort der code hin? hier ein auszug.......
Dim cB As CommandBar
Dim CBC As CommandBarButton
Dim i%
On Error Resume Next
Application.CommandBars(SymbolleistenName).Delete 'löschen, falls vorhanden
Set cB = Application.CommandBars.Add(Name:=SymbolleistenName, _
Temporary:=True, Position:=msoBarTop)
On Error GoTo 0
If Application.CommandBars(SymbolleistenName).Visible = False Then
cB.Visible = True
For i = 1 To 11
Set CBC = cB.Controls.Add(Type:=msoControlButton)
With CBC
.Style = msoButtonIconAndCaption
Select Case i
Case 1
.Caption = "Speichern"
.OnAction = "Dateispeichern"
.BeginGroup = False
.TooltipText = "speichern"
.Style = msoButtonIconAndCaption
.FaceId = 3
usw......

Denise
Anzeige
Noch Offen: Sorry, aber,...
25.01.2004 16:52:35
Ramses
Hallo
ich habe dir einen Code erstellt der das macht was du willst.
Zumindest mal die Auflistung der Mappen.
Ich bîn nicht bereit, mir Gedanken darüber zu machen
A) einen bestehenden Code anzupassen der auch noch mit "usw." abgeschlossen ist
B) wenn du schon andere Lösungen hast diese umzuschreiben.
Frag doch bitte bei dem nach, von dem du den Code hast.
Gruss Rainer
Lösung
25.01.2004 17:33:07
GraFri
Hallo
In gewisser Weise hat Rainer recht. Trotzdem der Code...



Option Explicit
Const SymbolleistenName As String = "Meine Leiste"
Dim cB          As CommandBar
Dim CBC         As CommandBarControl
Dim i           As Integer
Dim mCounter    As Integer
'Symbolleiste erstellen
Sub Symblleiste_erstellen()
On Error Resume Next
Application.CommandBars(SymbolleistenName).Delete 'löschen, falls vorhanden
Set cB = Application.CommandBars.Add(Name:=SymbolleistenName, _
                        Temporary:=True, Position:=msoBarTop)
On Error GoTo 0
If Application.CommandBars(SymbolleistenName).Visible = False Then _
        cB.Visible = True

For i = 1 To 11
    Set CBC = cB.Controls.Add(Type:=msoControlButton)
    
    With CBC
        .Style = msoButtonIconAndCaption
    Select Case i
        Case 1
        .Caption = "Speichern"
        .OnAction = "Dateispeichern"
        .BeginGroup = False
        .TooltipText = "speichern"
        .Style = msoButtonIconAndCaption
        .FaceId = 3
'usw......
    End Select
    End With
Next i
    
    Set CBC = CommandBars(SymbolleistenName).Controls.Add _
            (Type:=msoControlDropdown)
'    Set CBC = cB.Controls.Add(msoControlDropdown)
    With CBC
        .Width = 140
        .BeginGroup = True
        .OnAction = "Arbeitsmappe_öffnen"
'Hinzufügen von Mappen
    For i = 1 To Workbooks.Count
        If Workbooks(i).Name <> "PERSONL.XLS" Then
            .AddItem Workbooks(i).Name
        End If
    Next i
        .ListIndex = 1
    End With
End Sub

'Auswertung, wenn Listenfeld gedrückt wurde
Sub Arbeitsmappe_öffnen()
Set CBC = CommandBars.ActionControl
Workbooks(CBC.Text).Activate

     Code eingefügt mit Syntaxhighlighter 2.5

Mit freundlichen Grüßen, GraFri
Anzeige
AW: Lösung
25.01.2004 17:36:14
Bertold
Sehr schön, was aber wenn zwischenzeitlich eine Mappe geöffnet oder
geschlossen wird? Dann stimmen doch die Einträge nicht mehr oder sehe ich das falsch?
Bertold
AW: Lösung
25.01.2004 17:51:02
GraFri
Hallo
Ja, stimmt. Aber so etwas kann man mit einem OnTime-Ereignis abfangen.
Mit freundlichen Grüßen, GraFri
AW: Lösung
25.01.2004 18:08:36
Ulf
das macht man ja auch in einem Klassenmodul, indem die Ereignisse
NewWorkbook, Window deactivate usw. überwacht werden.
Ulf
Da habe ich zuviel geschrieben...
25.01.2004 20:08:59
Ramses
Hallo GraFri
ich habe es immer mit
CommandBars.ActionControl.Tag
probiert und nix erhalten. Deshalb habe ich aufgegeben :-).
Irgendwie hatte ich da wohl wirklich einen Knopf drin.

Gruss Rainer
Anzeige
AW: Lösung
25.01.2004 22:53:19
Denise
Super!!
aber wenn ich den code bei mir herium erweiter,
.AddItem Workbooks(i).Name
kommt hier die meldung methode nicht gefunden.......

Grüße
Denise

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige