Hallo,
ich möchte in Excel per Knopfdruck eine Image-Box an vorbestimmte Positionen setzten und diese
variabel mit Bildern versehen. Das setzten der Rahmen habe ich im Schleifendurchlauf schon hinbekommen. Auch habe ich einen Weg gefunden mir die erforderlichen Bilder von der Platte auszuwählen.
Mein Problem ist, ich bekomme diese nicht an die jeweilige Image-Box übergeben. Hab schon Stunden
im Forum verbracht nur leider nichts gefunden, was mir hilft, da ich noch absoluter Laie im
Umgang mit Objekten usw. bin.
Zum besseren Verständnis poste ich mal den Code.
Über Hilfe würde ich mich sehr freuen. Danke im voraus!
Sub Schaltfläche23_BeiKlick()
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
Dim o As Integer
Dim p As Integer
Dim q As Integer
Dim r As Integer
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
Dim vrtSelectedItem As Variant
' Dim oPic As StdPicture
Dim sFilename As String
Dim Bildzähler As Byte
Dim Zeilenzähler As Byte
Dim zähler As Byte
a = 0 'Position Bildspalte vom linken Rand Variable
b = 0 'Position Bildreihe vom oberen Rand Variable
c = 242.25 'Bildbreite Konstante
d = 181.5 'Bildhöhe Konstante
o = 3.75 'Position linkes Bild Konstante
p = 78.75 'Position erste Bildreihe vom oberen Rand Konstante
q = 12.75 'Abstand seitlich zwischen Bildern Konstante
r = 48 'Abstand Höhe zwischen Bildern Konstante
'Bild auswählen
With fd
.Filters.Clear
.Filters.Add "All files", "*.*"
.Filters.Add "Images", "*.bmp; *.gif; *.jpg; *.jpeg; *.tif; *.tiff", 1
If .Show = -1 Then
For Each vrtSelectedItem In .SelectedItems
'MsgBox "Path name: " & vrtSelectedItem
' Bild auswählen Ende
' Rahmen setzen
Bildzähler = ActiveSheet.OLEObjects.Count
Zeilenzähler = (Bildzähler + 1.5) / 2
If Bildzähler >= 2 Then
b = (Zeilenzähler - 1) * (d + r) + p
Do Until zähler = Bildzähler Or zähler > Bildzähler
zähler = zähler + 2
Loop
If zähler = Bildzähler Then
a = o
Else
a = (o + c + q)
End If
ElseIf Bildzähler = 1 Then
a = (o + c + q)
b = p
Else
a = o
b = p
End If
Bildzähler = Bildzähler + 1
sFilename = vrtSelectedItem
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _
DisplayAsIcon:=False, Left:=a, Top:=b, Width:=c, Height _
:=d).Select
' Bild laden
' immer absturz 'AddOLEObject(ClassType:="Forms.Image.1", _
'FileName:="vrtselecteditem", Left:=a, Top:=b, Width:=c, Height:=d) As Shape
Picture1.Picture = LoadPicture(sFilename) 'Hier liegt
' mein Problem. Verschiedenes Ausprobiert, aber immer
' Typenunverträglichkeiten oder fehlendes Objekt
' Bild laden Ende
Next vrtSelectedItem
Else
End If
End With
Set fd = Nothing
End Sub |