Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

CommandBars.FindControl

CommandBars.FindControl
Steffen
Hallo Zusammen,
Ich möchte in einem Programm Standard Befehle(Speichern,Füllfarbe,Schriftgrad usw.) in der Menüleiste festlegen .
mit folgenden Script hab ich es versucht erst zuprüfen ob erschon vorhanden ist u wenn nicht soll er eingefügt werden.
Sub steuerl()
If Not CommandBars(1).FindControl(ID:=1728).Enabled Then
Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:= _
msoControlButton, ID:=1728, Before:=10
End If
If Not CommandBars(1).FindControl(ID:=1731).Enabled Then
Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:= _
msoControlButton, ID:=1731, Before:=10
End If
If Not CommandBars(1).FindControl(ID:=401).Enabled Then
Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:= _
msoControlButton, ID:=401, Before:=10
End If
If Not CommandBars(1).FindControl(ID:=3).Enabled Then
Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:= _
msoControlButton, ID:=113, Before:=10
End If
If Not CommandBars(1).FindControl(ID:=1691).Enabled Then
Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:= _
msoControlButton, ID:=1691, Before:=9
End If
If Not CommandBars(1).FindControl(ID:=401).Enabled Then
Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:= _
msoControlButton, ID:=401, Before:=10
End If
If Not CommandBars(1).FindControl(ID:=3).Enabled Then
Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:= _
msoControlButton, ID:=3, Before:=10
End If
End Sub

die bringt mir aber ein Laufzeitfehler.
Ich vermute mal das es an der Eigenschaft Enabled liegt.
Viele Grüße Steffen

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

Betreff
Benutzer
Anzeige
AW: CommandBars.FindControl
14.11.2009 22:02:13
Nepumuk
Hallo,
Enabled gibt Wahr oder Falsch zurück. Das kannst du nicht mit Not vergleichen. Also ungefähr so:
Sub steuerl()
    
    Dim objCommandBarControl As CommandBarControl
    
    Set objCommandBarControl = CommandBars(1).FindControl(ID:=1728)
    If objCommandBarControl Is Nothing Then _
        CommandBars(1).Controls.Add ID:=1728, Before:=10
    
End Sub

Für genauere Angabe hab ich momentan zu wenig Blut im Alkohol. Ach ja, das: Type:=msoControlButton solltest du keinesfalls machen, wenn du nicht 100% sicher bis das es tatsächlich ein Button ist. Außerdem macht es keinen Sinn, wenn du die ID angibst, die weiß selbst, welches Control sie benutzt.
Gruß
Nepumuk
Anzeige
Danke Nepumuk..
14.11.2009 22:10:16
Steffen
..hab ich wieder was gelernt, werd das jetzt erstmal verdauen ;-)
Bin immer wieder beeindruckt wie kompetent hier in diesem Forum einem geholfen wird!
viele Grüße Steffen
Endlösung
14.11.2009 23:44:28
Steffen
Ich hab es jetzt folgendermaßen gelöst:
Sub steuerl()
Dim i As Long, n As Long
Dim myCommandBar As CommandBar
Set myCommandBar = Application.CommandBars("Worksheet Menu Bar")
For i = 1 To 6
n = Choose(i, 1728, 1731, 401, 1691, 113, 3)
If CommandBars(1).FindControl(ID:=n) Is Nothing Then
CommandBars(1).Controls.Add ID:=n, Before:=myCommandBar.Controls.Count + 1
End If
Next
End Sub
Danke nochmals an Nepumuk
Viele Grüße Steffen
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge