Sub EigeneSymbolleiste()
Dim cmdBar As CommandBar
Dim cnt As CommandBarControl
Set cmdBar = Application.CommandBars.Add(Name:="Dein Symbolleistenname", temporary:=True)
Set cnt = cmdBar.Controls.Add(ID:=1733) 'ID 1733 = Zoomfeld
cmdBar.Visible = True
End Sub
Gruß, NoNet
AW: Zoomfeld in eigene Symbolleiste einbinden
Peter
Hallo,
Danke für den Hinweis und die schnelle Antwort, - werde mich an die Arbeit machen.
Ich wünsche noch einen schönen Tag
Grüße
Peter
AW: Zoomfeld in eigene Symbolleiste einbinden
Luschi
Hallo Peter,
falls Du nur bestimmte Einstellungen zuslassen willst, dann so:
Dim cb As CommandBar, cBox As CommandBarControl
Sub myCommandBar()
On Error Resume Next
Application.CommandBars("myCB").Delete
On Error GoTo 0
Set cb = Application.CommandBars.Add("myCB", msoBarTop, False, True)
Set cBox = cb.Controls.Add(msoControlComboBox, , , , True)
With cBox
.AddItem "75%", 1
.AddItem "85%", 2
.AddItem "95%", 3
.AddItem "100%", 4
.AddItem "120%", 5
.OnAction = "toDoIt"
End With
cb.Visible = True
End Sub
Sub toDoIt()
Dim s As String
s = Replace(cBox.Text, "%", "", 1, -1, vbTextCompare)
ActiveWindow.Zoom = CLng(s)
End Sub
Gruß von Luschi
aus klein-Paris
AW: Zoomfeld in eigene Symbolleiste einbinden
Peter
Hallo,
ich war über die Mittagszeit noch nicht dazu gekommen, alles auszuprobieren.
Mache ich jetzt und melde mich bei Erfolg.
Danke für den ausführlichen Code.
Grüße
Peter
AW: Zoomfeld in eigene Symbolleiste einbinden
Peter
Hallo,
es funktioniert so, wie ich es haben wollte. Ein kleines Problem habe ich noch: Den Wert, der in der Box angezeigt wird, möchte ich für die weitere Verabreitung übernehmen. Mit s = Cbox.text geht das nicht, da bekomme ich die Meldung Objekt erforderlich. Kannst Du mir noch einen Tipp geben, wie der richtige Befehl lauten muss?
Grüße
Peter
AW: Zoomfeld in eigene Symbolleiste einbinden
Luschi
Hallo Peter,
in der Combox steht ein Text-Wert mit dem Prozentzeichen hinten dran, das entfernt werden muß.
Da es dann immer noch Text ist, muß der Wert auch noch in eine Zahl umgewandelt werden:
Dim s As String
Public iBox As Integer
'%-Zeichen entfernen
s = Replace(cBox.Text, "%", "", 1, -1, vbTextCompare)
' s in eine Zahl umwandeln
iBox = CInt(i)
Da iBox eine Variable ist, die innerhalb der Excel-Application bekannt ist, kann sie in jeder Codezeile benutzt werden.
Gruß von Luschi
aus klein-Paris
AW: Zoomfeld in eigene Symbolleiste einbinden
Peter
Hallo Luschi,
bei mir funktioniert das so nicht. Ich benutze Einträge ohne %. Replace ist daher überfüssig. Aber Cbox.text wird nicht erkannt.
Wahrscheinlich liegt das am Aufbau der Box. Ich setzte sie in einem Popup-Menue ein.
Dim cBox As CommandBarControl
Dim Param As CommandBarControl
'Button Parameter einrichten
Set Param = Application.CommandBars("Arbeitszeit").Controls.Add(Type:=msoControlPopup)
With Param
.Caption = "Parameter"
.TooltipText = "Parameter auswählen"
.Width = 60
.Height = 30
End With
Set cBox = Param.Controls.Add(msoControlComboBox, , , , True)
With cBox
.AddItem "10", 1
.AddItem "11", 2
.AddItem "12", 3
.AddItem "13", 4
.AddItem "14", 5
.OnAction = "toDoIt"
End With
cBox.Caption = "Zeit"
Sub toDoIt()
Dim s As String
s = Application.CommandBars.ActionControl.Text
End Sub
Wenn ich aber
s = Application.CommandBars.ActionControl.Text statt s = cBox.Text einsetze (Hinweis habe ich im ForumArchivgefunden) , dann bekomme ich den Text.
Danke für Deine Mühe.
Grüße
Peter
|