Excel 2007 objekt an definierten Ort verschieben

dodri

Grünschnabel
Hey Leute

Ich habe ein Problem mit Excel 2007.
Ich möchte gerne ein Rechteck mit Visual Basic an eine bestimmte Stelle des Arbeitsblattes verschieben.

Ich habe bereits einige Beispiele gefunden die mit diesem Befehl arbeiten:
ActiveSheet.Shapes("Rechteck 1").IncrementLeft 25

Dieser Befehl verschiebt das Rechteck 1 um den Wert 25 nach links.
Dieser Befehl ist aber vom Ort des Rechtecks abhängig.

Nehmen wir also an das Rechteck befände sich in der Mitte des Arbeitsblattes, dann würde es von dort aus um den Wert 25 nach links verschoben werden.
Befände sich das Rechteck auf der rechten Seite des Arbeitsblattes würde es von dort verschoben werden.

Ich möchte das Rechteck egal wo sich das Rechteck gerade befindet an einen bestimmten Ort verschieben können.

Wie macht man das, oder geht das übehaupt?
 
Hallo dodri,

dieser Code sollte das tun, was du wünscht:
Code:
Option Explicit

Sub ShapeVerschieben()
   Dim LeftPos As Single
   Dim TopPos As Single
   Dim NewLeftPos As Single
   Dim NewTopPos As Single
   Dim DiffLeft As Single
   Dim DiffTop As Single
   
   LeftPos = ActiveSheet.Shapes(1).Left
   TopPos = ActiveSheet.Shapes(1).Top
   NewLeftPos = 100
   NewTopPos = 250
   DiffLeft = NewLeftPos - LeftPos
   DiffTop = NewTopPos - TopPos
   
   MsgBox "links: " & LeftPos & vbCrLf _
      & "oben: " & TopPos
   
    ActiveSheet.Shapes(1).IncrementLeft DiffLeft
    Selection.ShapeRange.IncrementTop DiffTop
    
    MsgBox "NEU:" & vbCrLf _
      & "links: " & ActiveSheet.Shapes(1).Left _
      & "rechts: " & ActiveSheet.Shapes(1).Top _
      & "(Werte dem Bildschirm angepasst)"
End Sub
Natürlich sollten die Messageboxen im endgültigen Code entfernt werden ...
 
Hallo Drogist,

Hatte eigentlich mit Befehlen gerechnet, die ich noch nicht kenne. So sind mir die Befehle zwar nicht wirklich neu, aber dies so zu lösen, darauf wäre ich nicht gekommen.

vielen Dank, genauso habe ich mir das vorgestellt.

Gruß Dodri
 

Neue Beiträge

Zurück