Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1804to1808
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
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

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
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
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
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
AW: Symbol in CommandButton einfügen
14.01.2021 19:48:50
Micha
Hallo Daniel,
vielen Dank für Deine Hilfe.
MfG
Micha

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige