tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1300
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    dodri dodri ist offline Grünschnabel
    Registriert seit
    Jun 2009
    Beiträge
    2
    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?
     

  2. #2
    Drogist Drogist ist offline Mitglied Gold
    Registriert seit
    Jul 2007
    Beiträge
    229
    Hallo dodri,

    dieser Code sollte das tun, was du wünscht:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
    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 ...
     
    Best regards
    Drogist

  3. #3
    dodri dodri ist offline Grünschnabel
    Registriert seit
    Jun 2009
    Beiträge
    2
    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
     

Ähnliche Themen

  1. Excel 97 VB Makro hat Laufzeitfehler unter Excel 2007
    Von V&M im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 28.06.10, 10:14
  2. Operator aus VBA für Excel 2007
    Von Outsider77 im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 29.07.09, 04:38
  3. Antworten: 0
    Letzter Beitrag: 17.07.09, 10:08
  4. Excel 2007 + Makro + rauschreiben als Excel 1997 - 2003
    Von Herli im Forum Office-Anwendungen
    Antworten: 2
    Letzter Beitrag: 10.08.07, 11:09
  5. Excel 2007
    Von xloouch im Forum Office-Anwendungen
    Antworten: 2
    Letzter Beitrag: 31.05.07, 08:39

Stichworte