Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Icon auf Befehlsschaltfläche

71 views
Skip to first unread message

Alexander Maier

unread,
Jul 2, 2001, 5:39:28 AM7/2/01
to
Hallo Zusammen

Wie bekomme ich denn über ein Macro ein Icon auf eine Symbolschaltfläche?
Ich habe es mit .picture oder .icon und dann den Pfad, aber das hat nicht
funktioniert. Was muss ich machen, damit ich ein Bild auf eine
Befehlsschaltfläche bekomme?

Ich hoffe jemand kann mir helfen

gruss
Alex

Bernd Held

unread,
Jul 2, 2001, 6:06:33 AM7/2/01
to
Hallo Alex,


anbei folgendes Makro zu Deiner Problemlösung:


Sub SymbolleisteAnlegen()
Dim symb As CommandBar
'1. Schritt Erzeugen der Symbolleiste - noch ohne Elemente
Set symb = CommandBars.Add("Held", temporary:=True)
With symb
.Left = 50
.Top = 100
.Visible = True
End With


Set element = CommandBars("Held").Controls _
.Add(Type:=msoControlButton)
With element
'Legt den Stil fest, hier nur Text
.Style = msoButtonIconAndCaption
'Symbol festlegen
.FaceId = 1592
'Beschriftung des Symbols
.Caption = "Komentare löschen"
.TooltipText = "löscht alle Kommentare auf Arbeitsblatt"
'Zuweisung des Makros
.OnAction = "AlleNotizenlöschen"
End With
end Sub


Viele Grüße
Bernd


--------------------------------------------------------
Die MacHero EXCEL Homepage unter anderem
mit meinem Excel-VBA-Kompendium (Excel97/2000),
700 Makros für die Praxis Schritt für Schritt erklärt,
33 Leserbeurteilungen mehr unter http://members.aol.com/Machero
--------------------------------------------------------

--
__________________________________________________________
News suchen, lesen, schreiben mit http://newsgroups.web.de

Alexander Maier

unread,
Jul 2, 2001, 7:00:41 AM7/2/01
to
Hallo Bernd

Diese Antwort hat mir schon weitergeholfen. Aber was muss ich machen, wenn
ich ein selbstdefiniertes Icon auf die Schaltfläche möchte. Die Faceid 1592
gibt ja ein vordefiniertes Icon zurück (Brief mit rotem x). Aber wie mache
ich das mit einem eigen erstelltem Icon?

Vielleicht kannst du mir nochmals helfen

gruss
Alex

"Bernd Held" <bh...@debis.com> schrieb im Newsbeitrag
news:3b4047a9$1...@netnews.web.de...

Bernd Held

unread,
Jul 2, 2001, 7:02:17 AM7/2/01
to
Hi Alex,


hmn...


Ja, dann kopiere das selbst erstellt Ikon in eine Tabelle und
passe folgenden Code dann noch an:


Sub SymbolAusTabelleInSymbolleiste()
Dim Symbol As CommandBarButton
Dim SBS As Object


Set Symbol = CommandBars("Standard").Controls.Add(msoControlButton)
Worksheets("Tabelle1").Shapes("AutoForm 7").CopyPicture
Symbol.PasteFace
Set SBS = Symbol
SBS.OnAction = "Animation"
End Sub


Sub Animation()
Dim Pic As Picture
Dim i As Integer

For i = 1 To 5
ActiveSheet.Pictures.Insert ("c:\smiley.tif")
Verzögerung (1)
ActiveSheet.Pictures(1).Delete
Verzögerung (1)
Next i
Exit Sub
End Sub

Dr. Eckehard Pfeifer

unread,
Jul 2, 2001, 7:01:49 AM7/2/01
to
HAllo, Du kannst die Icons auf ein leeres Tabellenblatt legen, bei Oeffnen
der Mappe per Copy in die Zwischenablage bringen und von dort per PasteFace
dem Button zuweisen.

MfG

Eckehard Pfeifer


Alexander Maier

unread,
Jul 2, 2001, 7:25:44 AM7/2/01
to
Hallo

Noch eine letzte Frage, wie groß darf ein Icon sein? Ich habe versucht eine
Schaltfläche zu kopieren um zusehen wie groß (in Pixel) so ein Icon ist,
aber das hat nicht funktioniert. Wie groß darf so ein Icon sein (in Pixel)

Danke für eure Bemühungen

gruss
alex

"Bernd Held" <bh...@debis.com> schrieb im Newsbeitrag

news:3b4054b9$1...@netnews.web.de...

Alexander Maier

unread,
Jul 2, 2001, 8:03:33 AM7/2/01
to
Hallo

Irgendwie mache ich etwas falsch. Ich habe jetzt drei icon gemacht und habe
diese auch unter *.ico abgespeichert. Aber ich bekomme diese Icons nicht in
einen Tabelle abgespeichert. Wie bekomme ich die icons auf eine Tabelle.
Kann ich die icons auch von einem Formu´lar herunter kopieren? Und wie geht
das.

Bitte helft mir nochmals, ich weiß ich nerve.

Gruss und danke
alex

"Alexander Maier" <a...@octocon.de> schrieb im Newsbeitrag
news:#ed3rjuABHA.2016@tkmsftngp03...

Dr. Eckehard Pfeifer

unread,
Jul 2, 2001, 9:55:08 AM7/2/01
to
Hallo, Du erstellst eine Schaltflaeche ueber Anpassen/rechte Maustaste. Dort
findest Du auch Kopieren. Wechsle zum Tabellenblatt: Einfuegen.

--
Mit freundlichen Grüßen
Eckehard Pfeifer

VBA-WorkShops in Dresden, Info unter www.dr-e-pfeifer.de
Ein Blick lohnt sich immer: www.vba-magazin.de

Alexander Maier

unread,
Jul 3, 2001, 3:58:24 AM7/3/01
to
Hallo zusammen

Jetzt habe noch ein Problem, ich habe die Icon so kopiert und dann das File
auch abgespeichert. Aber als ich das macro als xla-datei abgespeichert habe,
sind die Icons samt den Tabelle weg. Ich brauch aber ein xla File, da das
Macro später in den xlstart ordner kopiert werden soll, und nicht
nachgefragt werden soll, ob das Macro ausgeführt werden darf. Wie bekomme
ich das mit den Icon bei xla-Dateien in den Griff. Ich habe auch schon
versucht, die Icon als *.ico abzuspeichern und diese dann über die
image-komponente zu ziehen aber irgendwie klapt das auch nicht.
Hat mir jemand einen Lösung

Ich wäre um eine Antwort sehr dankbar

gruss
Alex


"Alexander Maier" <a...@octocon.de> schrieb im Newsbeitrag

news:uWr$z4uABHA.1852@tkmsftngp07...

Dr. Eckehard Pfeifer

unread,
Jul 3, 2001, 7:03:16 AM7/3/01
to
Hallo, ist die personl.xls eine Alternative?

Eckehard Pfeifer


Alexander Maier

unread,
Jul 3, 2001, 8:37:58 AM7/3/01
to
Ne

ich sollte ein xla-File produzieren.

Ich habe dort aber keine Tabellenblätter mehr.

Ich habe es mit folgenden Befehlssatz versucht aber da bringt er mir einen
fehler
Private Sub UserForm_load()

SavePicture UserForm2.Picture, "symbol1.wmf"
SavePicture UserForm2.Picture, "symbol2.wmf"
SavePicture UserForm2.Picture, "symbol3.wmf"

End Sub
und danach

Function symbolleist()
Set mybar = CommandBars _
.Add(Name:="Navision1", Position:=msoBarTop, _
Temporary:=True)
With mybar


.Visible = True
End With

'mybar.Visible = True

Set newItem = CommandBars("Navision1").Controls.Add(Type:=msoControlButton)

Set pic = wsh.Pictures.Insert(ThisWorkbook.Path & "\symbol1.wmf")
pic.CopyPicture

With newItem

.Caption = "Filter F7"
.PasteFace
.FaceId = 1200
.OnAction = "test"
.pic.Delete

End With
Set newItem1 = CommandBars("Navision1").Controls.Add(Type:=msoControlButton)

With newItem1
.Caption = "Filter Strg F7"
.FaceId = 1100
.OnAction = "test2"


End With
Set newItem2 = CommandBars("Navision1").Controls.Add(Type:=msoControlButton)

With newItem2
.Caption = "Filter Shift F7"
.FaceId = 1000
.OnAction = ""


End With
End Function
Function test()
'MsgBox ("Hallo du da")
UserForm2.Show

End Function
Function test2()
MsgBox ("Hallo Hallo")

End Function

Irgendwie kennt er aber den Befehl pictures nicht. Da bringt er mir eine
Fehler


"Dr. Eckehard Pfeifer" <i...@dr-e-pfeifer.de> schrieb im Newsbeitrag
news:OOpQ7#6ABHA.1380@tkmsftngp07...

Peter Haserodt

unread,
Jul 3, 2001, 12:54:42 PM7/3/01
to

Hi,
natürlich hast du in einem xla noch Tabellenblätter.
Du siehst sie nur nicht.

Also:
Dein Icon als Bild in (erstmal) deine xls z.B. in Dein sheet "MeineBilder"
Dann benennst du es mit "MeinBild" (z.B.)


Jetzt im Workbook_AddInstall
(natürlich erst den ControlButton erstellen)
dann ..
ThisWorkbook.Sheets("MeineBilder").Shapes("MeinBild")=.Copy


und dann einfach nur noch PasteFace für dein msoControlButton

und dann noch in xla abspeichern.

Gruß Peter
--
www.haserodt.de


0 new messages