AW: Frage zu Grafik - Korrektur
16.05.2009 10:28:11
Beverly
Hi Benedikt,
sorry, da war noch ein Fehler im Code wenn noch kein Bild in der betreffenden Zeile vorhanden war. Jetzt sollte der Code ohne Fehler laufen
Sub BildAnfuegen()
Dim shShape As Shape
Dim doLinks As Double
Dim arrZeile6()
Dim inZeile6 As Integer
Dim arrZeile15()
Dim inZeile15 As Integer
ActiveSheet.Shapes(ActiveSheet.Application.Caller).Copy
With Worksheets("Zeichnung")
For Each shShape In .Shapes
If shShape.Top = .Range("B6").Top Then
ReDim Preserve arrZeile6(0 To inZeile6)
arrZeile6(inZeile6) = shShape.Left + shShape.Width
inZeile6 = inZeile6 + 1
ElseIf shShape.Top = .Range("B15").Top Then
ReDim Preserve arrZeile15(0 To inZeile15)
arrZeile15(inZeile15) = shShape.Left + shShape.Width
inZeile15 = inZeile15 + 1
End If
Next shShape
.Paste
Select Case ActiveSheet.Shapes(ActiveSheet.Application.Caller).Name
Case "Rectangle 1", "Rectangle 2", "Rectangle 3", "Rectangle 4"
.Shapes(.Shapes.Count).Top = .Range("B6").Top
On Error Resume Next
doLinks = Application.WorksheetFunction.Max(arrZeile6())
On Error GoTo 0
If doLinks 0 Then
.Shapes(.Shapes.Count).Left = doLinks
Else
.Shapes(.Shapes.Count).Left = .Range("B6").Left
End If
' .Shapes(.Shapes.Count).OnAction = ""
Case "Oval 5", "Oval 6", "Oval 7", "Oval 8"
.Shapes(.Shapes.Count).Top = .Range("B15").Top
On Error Resume Next
doLinks = Application.WorksheetFunction.Max(arrZeile15())
On Error GoTo 0
If doLinks 0 Then
.Shapes(.Shapes.Count).Left = Application.WorksheetFunction.Max(arrZeile15() _
)
Else
.Shapes(.Shapes.Count).Left = .Range("B15").Left
End If
' .Shapes(.Shapes.Count).OnAction = ""
End Select
End With
End Sub
Ich habe auch noch 2 Zeilen (die auskommentiert sind) ergänzt, falls die eingefügten Bilder keine Verknüpfung zum Makro haben sollen.