Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
836to840
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
836to840
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Symbolleisten erzeugen

Symbolleisten erzeugen
12.01.2007 16:51:37
Alex
Hallo zusammen,
ich möchte mir eine dynamische Symbolleiste erzeugen, die sich beim Starten einer bestimmten Datei öffnen soll. Hab dazu erstmal was aus anderen Quellen kopiert. Der Aufruf klappt dummerweise nur einmal - dann kommt der Laufzeitfehler '5'. Das kann ich verhindern, wenn ich den Namen vorher ändere. Keine Ahnung, was da passiert.
Hier mein Code:
Public objCBar As Office.CommandBar

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Application.CommandBars("FiltereiAlexAAAS").Visible = False
End Sub


Private Sub Workbook_Open()
Dim strOnAction As String
'DeleteCommandBar
'On Error GoTo err_CreateCommandBar
Set objCBar = ThisWorkbook.Application.CommandBars.Add( _
Name:="Filtere", Temporary:=True)
!!!!!!!!!!!!!!!!!!!!!!LAUFZEITFEHLER 5!!!!!!!!!!!!!!!!!
strOnAction = "'" & ThisWorkbook.Name & "'!modOnAction."
With objCBar
With .Controls.Add(Type:=msoControlButton)
.BeginGroup = True
.Style = msoButtonCaption
.Caption = "Demo Button 1"
.Tag = gcCBARBTN_TAG
.OnAction = strOnAction & "OnAction_DemoAddIn_11"
End With
With .Controls.Add(Type:=msoControlButton)
.Style = msoButtonCaption
.Caption = "Demo Button 2"
.Tag = gcCBARBTN_TAG
.OnAction = strOnAction & "OnAction_DemoAddIn_12"
End With
With .Controls.Add(Type:=msoControlButton)
.BeginGroup = True
.Style = msoButtonIcon
.FaceId = 3021
.Parameter = <a href=""http://www.vb-fun.de"">"http://www.vb-fun.de"</a>
.TooltipText = "VB-fun-Startseite"
.OnAction = strOnAction & "OnAction_GoToVBfun_13"
On Error Resume Next
TCBarPics.Shapes("picVBFun").CopyPicture
If Err.Number = 0 Then
.PasteFace
End If
On Error GoTo 0
End With
.Position = msoBarTop
.Visible = True
.Protection = msoBarNoCustomize
End With
exit_Sub:
On Error Resume Next
Set objCBar = Nothing
On Error GoTo 0
Exit Sub
err_CreateCommandBar:
MsgBox "Es ist ein Fehler bei der Erstellung der neuen " & _
vbCrLf & "Symbolleiste aufgetreten !", vbCritical, _
gcAPP_NAME & " - Fehler"
'DeleteCommandBar
Resume exit_Sub
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Symbolleisten erzeugen
12.01.2007 17:55:33
Ramses
Hallo
"...Der Aufruf klappt dummerweise nur einmal - dann kommt der Laufzeitfehler '5'...."
"...Das kann ich verhindern, wenn ich den Namen vorher ändere.Keine Ahnung, was da passiert...."
Tut mir leid, aber wenn du da noch nicht selber draufgekommen bist, dann lass die Finger davon.
Mit Symbolleisten und EXCEL-Einstellungen spielt man nicht
Ach ja deine Frage,.... aber ich glaube die ist nun ja beantwortet ;-)
Oder frei nach dem Christopher Lambert (Highlander): Es kann nur einen geben
Zum lernen schau doch mal hier vorbei
http://www.online-excel.de/excel/grusel_vba.php?f=2
Gruss Rainer
Anzeige
AW: Symbolleisten erzeugen
12.01.2007 18:08:35
Luschi
Hallo Alex,
die Definition:
Set objCBar = ThisWorkbook.Application.CommandBars.Add( _
Name:="Filtere", Temporary:=True)
ist korrekt. "Temporary:=True" sorgt dafür, daß beim Schließen von Excel diese
Symbolleiste auch verschwindet; aber eben erst beim Benden von Excel.
Wenn man nur die Arbeitsmappe schließt, dann kommt es eben zu dem Fehler.
Um das zu Verhindern, schreibe folgenden Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Filtere").Delete
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige