Can you please share the code?I was able to raise a dialog to allow changing a shape text frame font colour
Sub Star5Points2_Click()
Dim lngColorOld As Long
Dim shp As Shape
Set shp = ActiveSheet.Shapes("5-Point Star 2")
lngColorOld = shp.TextFrame.Characters.Font.Color
If Application.Dialogs(xlDialogFontProperties).Show Then
With Selection.Font
'MsgBox .Color
shp.TextFrame.Characters.Font.Color = .Color
End With
If lngColorOld <> shp.TextFrame.Characters.Font.Color Then
MsgBox "font color changed to " & shp.TextFrame.Characters.Font.Color
End If
End If
Set shp = Nothing
End Sub
Sub getNames()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
Debug.Print shp.Name
Next
End Sub
What I'm working on is a Point of Sale system with many Shapes(KEYS), I would like for the End User to be able to change the Shape back ground color, font Size and color without using the standard shape formatting procedures. the current plan is to call up a user form to for user to edit the shape.I was with you up until "and a cell". Can you describe in more detail what you need?
There are dialogs you can call from VBA to directly apply formatting to a cell, but I can't find any that return a formatting value that you can apply to a shape. That is, you call the dialog and whatever the user picks is applied to the active cell; the code never gets to find out what was applied.
Or I suppose you could designate a cell, apply the formatting to it, then query it for the formatting and re-apply it to your shape.
But we need to understand a little more about what you're doing.