Zellenposition bestimmen - Shape dahin verschieben

Kann man mit VBA die Koordinaten der linken oberen Ecke einer Zelle (bspw. Zelle C10) bestimmen…?

… um im Anschluss daran ein Shape-Objekt absolut an genau diese Position verschieben bzw. zu positionieren?

Vorab Danke für die Hilfe

Kann man mit VBA die Koordinaten der linken oberen
Ecke
einer Zelle (bspw. Zelle C10) bestimmen…?
… um im Anschluss daran ein Shape-Objekt absolut an
genau diese Position verschieben bzw. zu positionieren?

Hi EB,
mit der ersten Sub findest du die Namen deiner Shapes heraus.
Wenn du dann den Namen in der zweiten Sub dementsprechend anpasst kannst du das Shape positionieren.
Außer Top und Left gibts noch Height und Width für ein Shape.
Gruß
Reinhard

Option Explicit

Sub WieHeissenDie()
Dim Irgendwas
For Each Irgendwas In ActiveSheet.Shapes
 MsgBox Irgendwas.Name
Next Irgendwas
End Sub

Sub Position()
With ActiveSheet.Shapes("Autoform 1")
 .Top = Range("C3").Top
 .Left = Range("C3").Left
End With
End Sub

Hallo Excel-Beginner,

ja das geht. Sowohl für Shapes als für Range-Objekte (z.B einzelne Zelle) gibt es die Eigenschaften „Top“ und „Left“. Wenn du Top und Left des Shape gleich Top und Left der Zelle setzt hast du dein Shape an der gewünschten Position.

Schaut im Code dann z.B. so aus:

Sub Bild1\_verschieben()
 Call BildVerschieben(ActiveSheet.Shapes("Bild 1"), ActiveSheet.Range("C3"))
End Sub
Private Sub BildVerschieben(Grafik As Shape, Zelle As Range)
' Verschiebt Grafik/Shape an die linke obere Ecke der Zelle
 Application.ScreenUpdating = False
 With Grafik
 .Left = Zelle.Left
 .Top = Zelle.Top
 End With
 Application.ScreenUpdating = True
End Sub

Gruß
Franz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]