Clever-Excel-Forum

Normale Version: Makro: Bild in Zellbereich einfügen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
 
ich benötige Hilfe bei der Formulierung des Makrocodes in Excel.
 
Das untenstehende Skript funktioniert gut, um ein Bild einzufügen und zu löschen. Allerdings wird das Bild nach dem Einfügen immer von der Zelle (N24) aus nach unten rechts platziert, sodass die Zellen wie N25, N26 usw. und auch O25, O26 usw. durch die Größe des Bildes unbeabsichtigt verdeckt werden. Wie kann ich den Code im Skript so ändern, dass das Bild von der Zelle (N24) aus nach oben rechts oder oben links platziert wird?
 
Vielen Dank im Voraus und einen schönen Tag!
 
Martin

Code:
Sub typ_2010_A02()
    ActiveWindow.LargeScroll Down:=1
    Worksheets("Tabelle1").Range("Q17").FormulaR1C1 = "2"
    Worksheets("Tabelle2").Range("N24").Select
   
    Call Picture_Delete_A
   
    ActiveSheet.Shapes.Range(Array("Grafik 2")).Select
    Selection.Copy
    Sheets("Tabelle2").Select
    Range("N24").Select
    ActiveSheet.Paste
End Sub

Code:
Sub Picture_Delete_A()
Dim pic As Object
For Each pic In Worksheets("Tabelle2").Shapes
    If pic.TopLeftCell.Address(0, 0) = "N24" Then
        pic.Delete
    End If
Next pic
End Sub
Hallo Maddin,

hier mal was zum Spielen.

Hierbei wird das Bild ausgehend von N24 anhand der Bildgröße nach links und oben verschoben.
Mit dem ausgeremmten code kannst Du es auch an das Feld N24 anpassen.

Es gibt noch viele Möglichkeiten....
Code:

Sub typ_2010_A02()
  Dim AC As Range
  
' ActiveWindow.LargeScroll Down:=1
 
  Worksheets("Tabelle2").Select
  Range("Q17").FormulaR1C1 = "2"
  Call Picture_Delete_A

  ActiveSheet.Shapes("Grafik 2").Copy
  ActiveSheet.Paste
  Set AC = Range("N24")
  With Selection
    .Top = AC.Top - .Height
    .Left = AC.Left - .Width
'    .ShapeRange.LockAspectRatio = msoTrue
'    .Width = AC.Width
'    .Height = AC.Height
  End With
End Sub

_________
viele Grüße
Karl-Heinz