Add custom icon using VBA

S

SLW612

Hi, I have a toolbar that is stored in the personal.xls workbook and is
created each time I start Excel (2003 for xp). There are three buttons - the
first two have regular face id's, but the third I specifically designed a
button icon for. I just have no idea how to assign that icon to that macro.
I have saved the icon as a picture on sheet1 of my personal workbook (named
"calendar"), but I get an error message saying the picture is not found. I
also tried to activate the personal workbook but I kept getting more error
messages so I guess I am doing it wrong. Any help is appreciated!

Here is a snippet of my code:

c = 1
fID = 2167
Sheet1.Shapes("Calendar").Copy
For iCtr = LBound(MacNames) To UBound(MacNames)

With .Controls.Add(Type:=msoControlButton)
.OnAction = "'" & ThisWorkbook.Name & "'!" & MacNames(iCtr)
.Caption = CapNamess(iCtr)
.Style = msoButtonIcon
If Not c = 3 Then
.FaceId = fID
Else
.PasteFace
End If
.TooltipText = TipText(iCtr)
End With
fID = fID - 2100
c = c + 1
Next iCtr
 
D

Dave Peterson

Here's one that I saved. Maybe you can pick the pieces out.

Did you create a worksheet with 5 pictures named pic1, pic2, pic3, pic4, pic5 on
it?

For i = LBound(mac_names) To UBound(mac_names)
Worksheets("PictSheetNameHere").Pictures("pic" & i + 1).Copy
With .Controls.Add(Type:=msoControlButton)
.OnAction = "'" & ThisWorkbook.Name & "'!" & mac_names(i)
.Caption = cap_names(i)
.Style = msoButtonIconAndCaption
.PasteFace
.TooltipText = tip_text(i)
End With
Next i
 
S

SLW612

Well ... it didn't quite work ...

I'm now getting the error message:

Run-time error '1004':
Method 'Worksheets' of object '_Global' failed

I am using face id's for two buttons and just want the one button with a
custom designed icon. 3 buttons total.
 
D

Dave Peterson

When you get errors, you'll want to post the code and indicate the line that
caused the error.

But maybe this will help.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top