Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
536to540
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
536to540
536to540
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Symbolleiste erstellen und umbenennen

Symbolleiste erstellen und umbenennen
23.12.2004 07:40:32
Karsten
Guten Morgen zusammen,
ich erstelle beim Öffnen einer Datei (über Mustervorlage) eine eigene Symbolleiste mit dem Namen der Datei. Diese Symbolleiste wird beim Schließen der Arbeitsmappe auch wieder gelöscht.
Wenn ich jedoch die Arbeitsmappe unter einem anderen Namen abspeichere, soll die Symbolleiste den Namen der neuen Datei bekommen, um sie während der Arbeit mit der Arbeitsmappe auch ansprechen zu können. Wie geht das? Ich habe meinen Code unten beigestellt.
Karsten
Public CalcStatus As Long

Private Sub Workbook_Open()
'eigene Symbolleiste anlegen für die Bohrprofilerstellung
Dim symb As CommandBar
Dim symbol As CommandBarButton
Dim Name As String
On Error Resume Next
Worksheets("Icons").Shapes("Profilzeichnen").Select
Name = ActiveWorkbook.Name
Set symb = Application.CommandBars.Add(Name, Position:=msoBarTop, Temporary:=True)
ActiveWindow.Zoom = 100
With symb
.Left = 0
.Visible = True
End With
CalcStatus = Application.Calculation
Application.Calculation = xlAutomatic
Set symbol = Application.CommandBars(Name).Controls.Add(Type:=msoControlButton)
With symbol
.Style = msoButtonIconAndCaption
.FaceId = 230
.Caption = "Projektdaten"
.TooltipText = "Eingabe der Projektdaten"
.BeginGroup = True
.OnAction = "ProjektdatenEingeben"
End With
Set symbol = Application.CommandBars(Name).Controls.Add(Type:=msoControlButton)
With symbol
.Style = msoButtonIconAndCaption
.FaceId = 162
.Caption = "Bohrungsdaten"
.TooltipText = "Eingabemaske der Bohrungs- und Schichtdaten"
.BeginGroup = True
.OnAction = "Testuserform"
End With
Set symbol = Application.CommandBars(Name).Controls.Add(Type:=msoControlButton)
Worksheets("Icons").Shapes("Profilzeichnen").Select
Selection.Copy
With symbol
.Style = msoButtonIconAndCaption
.PasteFace
.Caption = "Bohrprofil erstellen"
.TooltipText = "Bohrprofil"
.BeginGroup = True
.OnAction = "BohrprofilErstellen"
End With
Set symbol = Application.CommandBars(Name).Controls.Add(Type:=msoControlButton)
Worksheets("Icons").Shapes("Schichtenverzeichnis").Select
Selection.Copy
With symbol
.Style = msoButtonIconAndCaption
.PasteFace
.Caption = "Schichtenverzeichnis"
.TooltipText = "Erstellung von Schichtenverzeichnissen nach DIN 4022"
.BeginGroup = True
.OnAction = "SchichtenverzeichnisErstellen"
End With
Set symbol = Application.CommandBars(Name).Controls.Add(Type:=msoControlButton)
With symbol
.Style = msoButtonIconAndCaption
.FaceId = 279
.Caption = "Zwischenablage"
.TooltipText = "Kopieren der Grafik in die Zwischenablage"
.BeginGroup = True
.OnAction = "ZeichenobjekteKopieren"
End With
Set symbol = Application.CommandBars(Name).Controls.Add(Type:=msoControlButton)
With symbol
.Style = msoButtonIconAndCaption
.FaceId = 25
.Caption = "Grafikeinstellung"
.TooltipText = "Anpassen der Grafikausgabe an den Rechner"
.BeginGroup = True
.OnAction = "TestGrafik"
End With
Worksheets("Splash").Activate
End Sub


Private Sub Workbook_Activate()
'Symbolleiste bim Aktivieren der Mappe einblenden
On Error Resume Next
Application.CommandBars(Name).Enabled = True
CalcStatus = Application.Calculation
Application.Calculation = xlAutomatic
End Sub


Private Sub Workbook_Deactivate()
'Symbolleiste beim Wechseln auf anderes Blatt ausblenden
On Error Resume Next
Application.CommandBars(Name).Enabled = False
Application.Calculation = CalcStatus
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Beim Schließen der Datei die Symbolleiste wieder entfernen
On Error Resume Next
Application.CommandBars(Name).Delete
Application.Calculation = CalcStatus
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Symbolleiste erstellen und umbenennen
Luschi
Hallo Karsten,
ich habe es mir abgewöhnt, die Befehlsfolge "Datei-Speichern unter..." in Excel zu benutzen, da ich damit schlechte Erfahrungen gesammelt habe. Besonders wenn man sehr viel mit Bereichsnamen arbeitet (ca. 350 pro Datei), kommt man mit dem o.g. Befehl schnell zu ungültigen Referenzen bzw. zu Referenzen in die Vorgänger-Arbeitsmappe.
Deshalb beende ich die Excel-Datei und kopiere nur noch von Windows aus. Damit bin ich eine ganze Reihe von Problemen los geworden, besonders dann, wenn ich die selbe Datei mal mit Excel2000, ExcelXP oder Excel2003 bearbeite.
Hier noch 1 Tip, mit:
Set symb = Application.CommandBars.Add(Name, Position:=msoBarTop, Temporary:=True)
erzeugst Du 1 temporäre Symbolleiste, die Excel automatisch vergißt, wenn das Workbook geschlossen wird.
Da ist dann:
Application.CommandBars(Name).Delete nicht mehr erforderlich
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Symbolleiste erstellen und umbenennen
23.12.2004 08:51:55
Karsten
Hallo Luschi,
danke für Deine Antwort. Komischerweise vergißt Excel meine Symbolleiste nicht, wenn ich die Arbeitsmappe schließe. Das ist auch genau mein Problem. Ich muß während einer Sitzung mehrere Arbeitsmappe aus einer Mustervorlage erstellen und parallel bearbeiten. Nun bekomme ich plötzlich mehrere gleiche Symbolleisten angezeigt, weil die alten nicht gelöscht werden wenn ich meine Datei mal umbenenne.
Karsten
AW: Symbolleiste erstellen und umbenennen
Erich
Hallo Karsten,
interessante Frage.
Allerdings meine ich dass Dein Code funktioniert. Habe das mal getestet.
Wenn Du mehrmals öffnest und schliesst geht es. Beim erstenmal der neuen Abspeicherung
geht es nicht, um zwar deswegen (vermute ich), weil Du Datei speichern unter
benützst. Nach Schliessen und öffnen erneut, müsste es aber gehen?
mfg
Erich
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige