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?
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]