Hallo Sebastian,
wenn ich dich recht verstanden habe, sollen in 96 Zellen verschiedene Bilder, die unter irgendeinem Namen auf einer Festplatte gespeichert sind, eingefügt werden, wenn ein Kontrollkästchen in oder für die jeweilige Zelle angeklickt ist.
Wäre es nicht einfacher, für vorgesehene Zellen das einzufügende Bild aus einer ComboBox auszuwählen? Die Zellen könnten z.B. durch Markierung festgelegt werden.
Erzeuge eine UserForm (z.B. UserForm1) mit einer ComboBox (z.B. ComboBox1) für die Auswahl der Bilder und zwei Schaltflächen (z.B. CommandButton1 und CommandButton2) für den o.K.-Button und den Abbrechen-Button.
Füge in ein Modul ein:
Sub logo()
Load UserForm1
UserForm4.Show vbModeless
End Sub
Füge in den Code der UserForm ein:
Private Sub CommandButton1_Click()
Select Case ComboBox1.ListIndex
Case 0 'kein Bild
Case 1 'Logo1
Bild = "c:\Logo1.jpg" 'oder dein Pfad
Case 2
Bild = "c:\Logo2.jpg" 'oder dein Pfad
Case 3
'usw
Case Else
End Select
With Range(ActiveWindow.RangeSelection.Address)
o = .Top
u = .Height + o
l = .Left
r = .Width + l
End With
For Each p In ActiveSheet.Shapes
If p.Top >= o And p.Top < u And p.Left >= l And p.Left < r Then p.Delete
Next
If ComboBox1.ListIndex <> 0 Then
For Each Zelle In Range(a)
With ActiveSheet.Pictures.Insert(Bild)
.Width = 8
.Height = 9.3
.Top = Zelle.Top
.Left = Zelle.Left
End With
Next
End If
End Sub
Private Sub CommandButton2_Click()
Unload UserForm1
End Sub
Private Sub UserForm_initialize()
CommandButton1.Caption = "o.K."
CommandButton2.Caption = "Abbrechen"
ComboBox1.AddItem "kein Bild"
ComboBox1.AddItem "Logo1"
ComboBox1.AddItem "Logo2"
'usw
ComboBox1.ListIndex = 0
End Sub
Rückmeldung erbeten. Gruß
Holger
|