Um das Forum ein wenig aufzuwerten, hier die Lösung:
Private Sub ComboBox1_Change()
SetPicturePath
End Sub
Private Sub ComboBox2_Change()
SetPicturePath
End Sub
Private Sub ComboBox3_Change()
SetPicturePath
End Sub
Private Function SetPicturePath() As Boolean
Dim Images As New Collection
InitializeImages Images
For Each mShape In ActiveSheet.Shapes
If Left$(mShape.Name, 6) = "Grafik" Then
mShape.Delete
End If
Next mShape
mName = ""
On Error Resume Next
mName = Images(ComboBox1.Text & ComboBox2.Text & ComboBox3.Text)
If Not mName = "" Then
If Not Worksheets("Grafiken").Shapes(mName) Is Nothing Then
Worksheets("Grafiken").Shapes(mName).Copy
Range("E16").Select
ActiveSheet.Paste
SetPicturePath = True
Else
SetPicturePath = False
End If
Else
SetPicturePath = False
End If
End Function
Private Function InitializeImages(Images As Collection)
With Images
.Add "Grafik 1", "245400050"
.Add "Grafik 2", "300400063"
.Add "Grafik 2", "420400063"
.Add "Grafik 3", "420500063"
.Add "Grafik 3", "550500063"
.Add "Grafik 4", "420500080"
.Add "Grafik 4", "420630080"
End With
End Function
|