Here is what you will start.
Place two combo boxes and two image controls in a custom shape.

Let's say your worksheet looks like this:

In the event, UserForm_Initialize()specify the chart names in both lists. for instance
Dim ws As Worksheet
'~~> Prepare your form
Private Sub UserForm_Initialize()
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim ChartObj As ChartObject
For Each ChartObj In ActiveSheet.ChartObjects
ComboBox1.AddItem ChartObj.Name
ComboBox2.AddItem ChartObj.Name
Next ChartObj
End Sub
So, when you run the form, it will look like

In the click event from combobox lists, use the Stephen Bullen PastePicture code from HERE to display the chart in a custom form. for instance
Private Sub ComboBox1_Click()
ws.Shapes(ComboBox1.Value).CopyPicture
Set Me.Image1.Picture = PastePicture(xlPicture)
End Sub
Private Sub ComboBox2_Click()
ws.Shapes(ComboBox2.Value).CopyPicture
Set Me.Image2.Picture = PastePicture(xlPicture)
End Sub
This is how the form will look.
From there, you now have the names of the diagrams. Just use them to work as you please.
Hope this helps.

source
share