Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
944to948
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
944to948
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Neue Symbolleiste über VBA erstellen
02.02.2008 05:39:00
Max
Hallo Forumsfreunde,
ich würde gerne eine neue Symbolleiste per Makro erstellen. Ich hab mich auch schon daran versucht, aber ich möchte den einzelnen Schaltflächen gerne Attribute zuweisen.
Beispiele:
- Formatvorlage, Schriftart, Schriftbreite in der Breite reduzieren
- zwischen einzelnen Symbolen Abstand einfügen
- eine benutzerdefinierte Schaltfläche einfügen und dieser ein Makro zuweisen
Mein bisheriges VBA läuft gut und sieht wie folgt aus:
----------------------------------------------------------------------------------------------

Sub LeisteHinzu()
Dim cmdB As CommandBar: Set cmdB = CommandBars.Add("Neue_Leiste", temporary:=True)
With cmdB: .Left = 50: .Top = 100: .Visible = True: End With
With Application.CommandBars("Neue_Leiste").Controls:
.Add Type:=msoControlButton, ID:=3, Before:=1 '&Speichern
.Add Type:=msoControlButton, ID:=4, Before:=2 '&Drucken...
'.Add Type:=msoControlButton, ID:=2521,        'Drucken (hp LaserJet 1320 PCL 6)
.Add Type:=msoControlComboBox, ID:=1732, Before:=3 '&Formatvorlage:
.Add Type:=msoControlComboBox, ID:=1728, Before:=4 '&Schriftart:
.Add Type:=msoControlComboBox, ID:=1731, Before:=5 '&Zoom:
.Add Type:=msoControlComboBox, ID:=1733, Before:=6 '&Schriftgrad:
.Add Type:=msoControlButton, ID:=2949, Before:=7 '&Benutzerdefiniertes Menüelement
.Add Type:=msoControlButton, ID:=186, Before:=8 ' Ma&kros...
.Add Type:=msoControlButton, ID:=2186, Before:=9 ' Auf&zeichnen...
.Add Type:=msoControlButton, ID:=893, Before:=10 ' &Blatt schützen...
.Add Type:=msoControlButton, ID:=3159, Before:=11 ' &Gruppierung...
.Add Type:=msoControlButton, ID:=3160, Before:=12 ' Gruppierung &aufheben.
End With
End Sub



Sub Symbolleiste_löschen()
Application.CommandBars("Neue_Leiste").Delete ' löscht die Symbolleiste wieder
End Sub


----------------------------------------------------------------------------------------------
Wäre toll, wenn ihr mir helfen könntet
Gruss
Max Berg

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Neue Symbolleiste über VBA erstellen
02.02.2008 09:25:00
Josef
Hallo Max,
als Ansatz.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub LeisteHinzu()
Dim cmdB As CommandBar
Dim cmdBBtn As CommandBarButton

Symbolleiste_loeschen

Set cmdB = CommandBars.Add("Neue_Leiste", temporary:=True)

With cmdB
    .Left = 50
    .Top = 100
    .Visible = True
    
    With cmdB.Controls
        .Add Type:=msoControlButton, ID:=3, Before:=1 '&Speichern
        .Add Type:=msoControlButton, ID:=4, Before:=2 '&Drucken...
        '.Add Type:=msoControlButton, ID:=2521, 'Drucken (hp LaserJet 1320 PCL 6)
        .Add Type:=msoControlComboBox, ID:=1732, Before:=3 '&Formatvorlage:
        .Add Type:=msoControlComboBox, ID:=1728, Before:=4 '&Schriftart:
        .Add Type:=msoControlComboBox, ID:=1731, Before:=5 '&Zoom:
        .Add Type:=msoControlComboBox, ID:=1733, Before:=6 '&Schriftgrad:
        .Add Type:=msoControlButton, ID:=2949, Before:=7 '&Benutzerdefiniertes Menüelement
        .Add Type:=msoControlButton, ID:=186, Before:=8 ' Ma&kros...
        .Add Type:=msoControlButton, ID:=2186, Before:=9 ' Auf&zeichnen...
        .Add Type:=msoControlButton, ID:=893, Before:=10 ' &Blatt schützen...
        .Add Type:=msoControlButton, ID:=3159, Before:=11 ' &Gruppierung...
        .Add Type:=msoControlButton, ID:=3160, Before:=12 ' Gruppierung &aufheben.
    End With
End With

Set cmdBBtn = cmdB.Controls.Add(msoControlButton, Before:=1)

With cmdBBtn
    .Caption = "Neue Schaltfläche" 'Beschriftung
    .Style = msoButtonIconAndCaption
    .BeginGroup = True 'Trenner
    .FaceId = 179 'Symbol
    .OnAction = "makroname" 'Makro
End With

Set cmdB = Nothing
Set cmdBBtn = Nothing
End Sub




Sub Symbolleiste_loeschen()
On Error Resume Next
Application.CommandBars("Neue_Leiste").Delete ' löscht die Symbolleiste wieder
On Error GoTo 0
End Sub


Gruß Sepp



Anzeige
Läuft super! Danke !! :-)
02.02.2008 10:17:48
Max
Hallo Sepp,
bin total überrascht, dass ich hier im Forum so tolle Unterstützung erhalten kann. Hätte ich sowas geahnt, hätte ich mich nicht jahrelang gegen das Internet gewehrt.
Makro läuft super. Später werde ich mich mit weiteren Wünschen (z. B. Breite der Schaltfläche etc.) befassen.
Bin ja erst den 3. Tag im Forum und habe erst seit knapp 2 Wochen Internetanschluss. Da bin ich schon ganz zufrieden, dass ich das soweit hinkriege. Bin fasziniert vom Internet, da muss ich direkt aufpassen, dass ich nicht süchtig werde.
Dein Name ist mir schon wiederholt durch tolle Beiträge aufgefallen.
Muss noch lernen mit dem Forum umzugehen. Mir fehlt da eine Bedienungsanweisung oder so was.
Nochmals besten Dank und bis bald
Max Berg

Anzeige
AW: Läuft super! Danke !! :-)
02.02.2008 10:31:00
Josef
Hallo Max,
"neue" sind in diesem Forum immer herzlich willkommen.
Bedienungsanleitung brauchst du keine, aber vielleicht schaust du dir die Forums-FAQ einmal an.

Gruß Sepp



AW: Läuft super! Danke !! :-)
02.02.2008 10:53:00
Max
Hallo Sepp,
vielen Dank auch für diesen nützlichen Tipp. Wäre von alleine nicht draufgekommen. Habe mit dem "Forums-FAQ" erstmals genügend Beschäftigung.
Gruss
Max Berg

164 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige