Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1080to1084
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
Inhaltsverzeichnis

Symbolleiste

Symbolleiste
18.06.2009 12:10:09
Peter
Hallo,
in der Symbolleiste Standard gibt es ein kleines Fenster, in dem man den Zoomfaktor einstellen bzw. mit dem Pfeil einen Zoomfaktor auswählen kann. Kann mir jemand einen Hinweis geben, wie man das für eine eigene Symbolleiste mit VBA programmiert?
Danke für Hinweise
Peter

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zoomfeld in eigene Symbolleiste einbinden
18.06.2009 12:20:43
NoNet
Hallo Peter,
so geht's :
VBA-Code:
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

Anzeige
AW: Zoomfeld in eigene Symbolleiste einbinden
18.06.2009 12:25:28
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
18.06.2009 13:55:04
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

Anzeige
AW: Zoomfeld in eigene Symbolleiste einbinden
18.06.2009 14:41:46
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
18.06.2009 15:03:26
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
18.06.2009 16:34:29
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
Anzeige
AW: Zoomfeld in eigene Symbolleiste einbinden
18.06.2009 17:47:57
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

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige