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

Forumthread: Symbol in CommandButton einfügen

Symbol in CommandButton einfügen
14.01.2021 18:08:01
Micha
Hallo,
habe eine UserForm mit einigen CommandButton. Diese sollen nun Symbole wie Drucken, Speichern usw... eingefügt bekommen. Habe die Excel-Version 2016.
Ich gehe zu:
- Symbolleiste für den Schnellzugriff anpassen
-Weitere Befehle....
-Rechtsklick auf Symbol (um es zu kopieren!) funktioniert aber nicht.
Was muss ich anstellen, damit ich ein Symbol in den CommandButton "Picture(keine)" bekomme?
Für Euer Bemühen bedanke ich mich bereits im Voraus.
MfG
Micha
Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Symbol in CommandButton einfügen
14.01.2021 19:19:21
volti
Hallo Micha,
wenn Du in der Userform für einen Button die Picture(keine)-Funktion anklickst, geht der FilePicker auf.
Mit diesem wählst Du dann eine entsprechende Bild-Datei aus und fügst das Bild in in Deinen Button ein.
Diese lassen sich nicht aus der Schnellzugriffsleiste einfach kopieren.
Da Du ja wahrscheinlich keine entsprechende Datei hast, würde ich mir jetzt über Alt-Druck die Ribbonleiste oder die Schnellzugriffsleiste, wo Deine gewünschten Button drin sind, in den Zwischenspeicher kopieren, mit Paint o.ä. den gewünschten Button zurechtschneiden und als Datei abspeichern. Fertig.
Ist ein bisschen Arbeit, sollte aber funktionieren. Für die Ribbon-Gestaltung habe ich eine Datei, in der viele der Ribbonsymbole aufrufbar sind. Wenn Du das so machen möchtest, stelle ich diese gerne mal hier ein.
Aber vielleicht hat ja noch jemand eine bessere Idee.
viele Grüße
Karl-Heinz
Anzeige
AW: Symbol in CommandButton einfügen
14.01.2021 19:46:01
Micha
Hallo Karl-Heinz,
vielen Dank für die schnelle Rückmeldung.
Würde gern Deinen Vorschlag (Ribbonsymbole) versuchen.
Daher bitte ich um diese Datei.
Aber warum können die Symbole nicht kopiert werden. Meiner Meinung nach
ging das mal. (Excel 2007? - Excel 2010?)
MfG
Micha
Anzeige
AW: Symbol in CommandButton einfügen
14.01.2021 20:24:58
volti
Hallo Micha,
die Datei bzw. eine vergleichbare hat Nepumuk hier schon eingestellt.
Eine andere habe ich auch nicht. In Nepumuks Version gibt es auch einen Kopierbutton in der Anzeigedialogbox.
Hatte erwartet, dass der Button kopiert und man das in Paint einfügen kann, ohne das auszuschneiden.
Geht bei mir nicht. Es kommen nur die beiden altbekannten ?.
Vielleicht klappt es bei Dir, ansonsten so wie ich beschrieben hatte oder den Code von Nepumuk nehmen.
Viel Erfolg.
viele Grüße
Karl-Heinz
Anzeige
AW: Symbol in CommandButton einfügen
14.01.2021 20:28:21
Nepumuk
Hallo,
es wird der Name des Icons in das Clipboard geschoben. Damit kann es einfach in den Code eingefügt werden.
Gruß
Nepumuk
AW: Symbol in CommandButton einfügen
14.01.2021 22:02:22
volti
OK Max,
danke für die Info.
Da hatte ich dann wohl falsch gedacht und es nicht bemerkt (wegen der 2 Zeichen)
Muss morgen mal gucken, was da los ist.
Gruß
KH
Anzeige
AW: Symbol in CommandButton einfügen
14.01.2021 19:54:10
Micha
Hallo ralf_b
vielen Dank für Deine Hilfe.
MfG
Micha
AW: Symbol in CommandButton einfügen
14.01.2021 19:32:38
Nepumuk
Hallo Micha,
ein Beispiel:
Private Sub UserForm_Activate()
    CommandButton1.Picture = CommandBars(9).Controls(7).Picture
End Sub

An die Icons kommst du so:
Option Explicit

Private Declare PtrSafe Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
    ByVal DirPath As String) As Long

Public Sub Export_Icons()
    
    Dim objPicture As IPictureDisp
    Dim objCommandBar As CommandBar
    Dim objCommandBarControl As CommandBarControl
    Dim strPath As String
    
    strPath = ThisWorkbook.Path & "\CommandbarIcons\"
    
    Call MakeSureDirectoryPathExists(strPath)
    
    On Error Resume Next
    
    For Each objCommandBar In CommandBars
        
        For Each objCommandBarControl In objCommandBar.Controls
            
            Set objPicture = objCommandBarControl.Picture
            
            If Err.Number = 0 Then
                
                Call stdole.SavePicture(Picture:=objPicture, _
                    Filename:=strPath & Format$(objCommandBar.Index, "000") & _
                    "_" & Format$(objCommandBarControl.Index, "000") & ".bmp")
                
            Else
                Err.Clear
            End If
        Next
    Next
End Sub

Die 1. Zahl ist die Commandbar die 2. Zahl das Control. Es gibt viel mehr Icons, wenn du das gewünscht nicht findest, dann melde dich.
Wenn du die RibbonIcons in einem Commanbutton nutzen willst, dann so:
Private Sub UserForm_Initialize()
    Set CommandButton1.Picture = _
        Application.CommandBars.GetImageMso("AnimationTriggerAddMenu", 20, 20)
    Set CommandButton2.Picture = _
        Application.CommandBars.GetImageMso("PrintPreviewClose", 20, 20)
End Sub

Die Bezeichnung des Icons findest du in der IconGallery dieser Mappe:
https://www.herber.de/bbs/user/143016.zip
Gruß
Nepumuk
Anzeige
AW: Symbol in CommandButton einfügen
14.01.2021 19:53:08
Micha
Hallo Nepumuk,
vielen Dank für Deine Hilfe.
MfG
Micha
Frage zu Mappe mit IconGallery
15.01.2021 07:48:36
Oisse
Mich hat das mit den Icons auch interessiert und habe mir die Zip-Datei geholt.
Allerdings funktioniert der Code nicht.

Private Sub cmdCopy_Click()
Dim oData As DataObject
Set oData = New DataObject
With oData
.SetText imageMso.Caption   'Fehler: DataObject: SetText ungültiges Argument
.PutInClipboard
End With
Set oData = Nothing
Hide
End Sub

Wie kann man diesen Fehler beheben?
L.G.
Oisse
Anzeige
AW: Frage zu Mappe mit IconGallery
15.01.2021 08:43:54
volti
Hallo Oisse,
Du kannst auch über die API kopieren. Ersetze den Code mit diesem hier:
Code:
[Cc][+][-]

Option Explicit Private Declare PtrSafe Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, _ ByVal dwBytes As LongPtr) As LongPtr Private Declare PtrSafe Function GlobalFree Lib "kernel32" (ByVal hMem As LongPtr) As LongPtr Private Declare PtrSafe Function GlobalLock Lib "kernel32" (ByVal hMem As LongPtr) As LongPtr Private Declare PtrSafe Function GlobalUnlock Lib "kernel32" (ByVal hMem As LongPtr) As Long Private Declare PtrSafe Function lstrcpy Lib "kernel32" (ByVal lpString1 As Any, _ ByVal lpString2 As Any) As LongPtr Private Declare PtrSafe Function SetClipboardData Lib "user32" (ByVal wFormat As Long, _ ByVal hMem As LongPtr) As LongPtr Private Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As LongPtr) As Long Private Declare PtrSafe Function CloseClipboard Lib "user32" () As Long Private Declare PtrSafe Function EmptyClipboard Lib "user32" () As Long Private Sub cmdCopy_Click() 'Kopieren von Text über die API Dim hMem As LongPtr, lpGMem As LongPtr, sCliptext As String sCliptext = imageMso.Caption hMem = GlobalAlloc(&H42, Len(sCliptext) + 1) lpGMem = GlobalLock(hMem) lpGMem = lstrcpy(lpGMem, sCliptext) If GlobalUnlock(hMem) = 0 Then If OpenClipboard(0&) <> 0 Then EmptyClipboard SetClipboardData 1, hMem '=CF_TEXT CloseClipboard End If End If 'GlobalFree hMem 'nur einmalig bereitstellen, Zwischenablage löschen End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Frage zu Mappe mit IconGallery
15.01.2021 09:00:21
Oisse
Hallo Karl-Heinz,
und vielen Dank.
Der Code läuft zwar, aber es passiert nichts, wenn ich auf den Button drücke.
Muss ich da vorher noch was öffnen. Ich dachte es wird eine Icon-Galerie erstellt und die Namen der Icons angezeigt. Oder habe ich mich da getäuscht?
Gruß
AW: Frage zu Mappe mit IconGallery
15.01.2021 09:40:25
volti
Hallo Oisse,
im Tab-Reiter "Icon Gallery" befinden sich diverse Galeries von großen und kleinen Icons, die nach Anklicken angezeigt werden.
Suche Dir ein Icon aus und klicke drauf.
Es erscheint dann die MsgBox mit Anzeige des Ivon und dessen Namen.
Über den Copy-Button kann der Name in die Zwischenablage kopiert werden und von hier an gewünschter Stelle eingefügt werden.
Gewünschte Stelle kann sein z.B. im Ribbon-Editor CustomUI usw.
Erstellt wird hier mit dieser Datei nichts. Es dient nur zur Auswahl aus den zur Verfügung stehenden Icons und die Ermittlung des msoNamens.
viele Grüße
Karl-Heinz
Anzeige
Besten Dank für...
15.01.2021 10:05:28
Oisse
das Makro und die Erklärung.
Funktioniert super.
Gruß Oisse
AW: Symbol in CommandButton einfügen
14.01.2021 19:40:00
Daniel
Als alternative:
Schau dir mal die Symbol-Schriftarten (Wingdings und ähnliche) an, am besten über den Assistenten "Einfügen - Symbol"
Wenn du dort passende Zeichen findest, kannst du die auch in den Buttons verwenden.
Gruß Daniel
Anzeige
AW: Symbol in CommandButton einfügen
14.01.2021 19:48:50
Micha
Hallo Daniel,
vielen Dank für Deine Hilfe.
MfG
Micha
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Symbole in CommandButtons einfügen in Excel


Schritt-für-Schritt-Anleitung

Um ein Symbol in einen CommandButton in Excel einzufügen, folge diesen Schritten:

  1. UserForm öffnen: Öffne Deine UserForm in Excel, wo der CommandButton eingefügt werden soll.
  2. CommandButton auswählen: Klicke auf den CommandButton, den Du anpassen möchtest.
  3. Picture-Eigenschaft setzen: Gehe zu den Eigenschaften des CommandButtons (im Eigenschaftenfenster).
  4. Picture-Eigenschaft: Suche die Eigenschaft Picture und klicke auf die drei Punkte ..., um den FilePicker zu öffnen.
  5. Symbol auswählen: Wähle die Bild-Datei aus, die Du verwenden möchtest. Du kannst auch Icons von der Ribbon-Leiste oder der Schnellzugriffsleiste kopieren, indem Du sie in ein Grafikprogramm wie Paint einfügst und als Bild speicherst.
  6. VBA-Code verwenden (optional): Du kannst auch VBA verwenden, um das Symbol direkt zu setzen. Beispiel:

    Private Sub UserForm_Activate()
       CommandButton1.Picture = CommandBars(9).Controls(7).Picture
    End Sub

Häufige Fehler und Lösungen

  • Button nicht mehr anklickbar: Wenn Dein CommandButton nach dem Einfügen des Symbols nicht mehr reagiert, überprüfe die Eigenschaften des Buttons, insbesondere die Enabled-Eigenschaft; sie sollte auf True gesetzt sein.

  • Symbol nicht kopierbar: Wenn Du ein Symbol aus der Schnellzugriffsleiste nicht kopieren kannst, kann es daran liegen, dass es sich um ein eingebettetes Symbol handelt. In diesem Fall musst Du es möglicherweise manuell in ein Bild umwandeln.


Alternative Methoden

  • Symbol-Schriftarten: Du kannst auch Schriftarten wie Wingdings oder Webdings verwenden, um spezielle Symbole in Deinen Buttons anzuzeigen. Wähle einfach die Schriftart und das gewünschte Symbol aus und füge es in den Text des Buttons ein.

  • Excel Ribbon Icons Gallery: Nutze die Excel Ribbon Icons Gallery, um die verfügbaren Icons zu durchsuchen. Du kannst den Namen des gewünschten Icons verwenden, um es in Deinen VBA-Code einzufügen:

    CommandButton1.Picture = Application.CommandBars.GetImageMso("PrintPreviewClose", 20, 20)

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du Symbole in CommandButtons einfügen kannst:

  1. Speichern-Symbol:

    CommandButton1.Picture = Application.CommandBars.GetImageMso("FileSave", 20, 20)
  2. Drucken-Symbol:

    CommandButton2.Picture = Application.CommandBars.GetImageMso("Print", 20, 20)
  3. Benutzerdefinierte Icons: Speichere ein benutzerdefiniertes Bild und verwende den folgenden Code, um es in den Button einzufügen:

    CommandButton3.Picture = LoadPicture("C:\Pfad\zu\deinem\Bild.bmp")

Tipps für Profis

  • VBA und Icons: Wenn Du mit VBA arbeitest, kannst Du die GetImageMso-Funktion nutzen, um direkt auf die in Excel eingebauten Icons zuzugreifen. Das spart Zeit beim Erstellen von Schaltflächen.

  • Benutzerdefinierte Symbolbibliotheken: Erstelle eine eigene Sammlung von Symbolen, die Du regelmäßig verwendest. Das erleichtert das Einfügen der Icons in verschiedenen Projekten.


FAQ: Häufige Fragen

1. Wie füge ich ein Symbol in Excel ein, wenn ich keine Bilddatei habe? Du kannst die GetImageMso-Funktion in VBA verwenden, um ein Symbol direkt aus der Excel Ribbon Icons Gallery zu verwenden.

2. Warum kann ich das Symbol nicht kopieren? Einige Symbole in der Ribbon-Leiste sind nicht direkt kopierbar. Du musst sie möglicherweise zuerst in ein Grafikprogramm exportieren, um sie als Bilddatei zu speichern.

3. Wo finde ich die Namen der Icons für GetImageMso? Die Namen der Icons kannst Du in der Excel Ribbon Icons Gallery finden oder in einer speziellen Datei, die die Icons auflistet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige