Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Grafik bewegen

Grafik bewegen
29.03.2006 13:15:18
Andreas
Hallo zusammen !
Ich möchte eine Autoform per Vba langsam rotieren und verschieben lassen.
Eine Einfache rotation und verschiebung kriege Ich hin aber Ich möchte eine fließende bewegung.
Meine ansätze sind Wait oder eine For I Schleife bin aber gescheitert,
villeicht kann mir jemand weiterhelfen.
Mein bisheriger Code:

Sub drehen()
Dim x
For x = 1 To 4
ActiveSheet.Shapes("Group 6").Select
Selection.ShapeRange.IncrementRotation 32.64
Selection.ShapeRange.IncrementLeft 10
Next x
End Sub

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Grafik bewegen
29.03.2006 13:37:49
Reinhard
Hi Andreas,
meinst du so:?
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub drehen()
Dim x
For x = 0 To 32
ActiveSheet.Shapes("Rectangle 1").Select
Selection.ShapeRange.Rotation = x
Selection.ShapeRange.IncrementLeft 1
Sleep 50
Application.ScreenUpdating = True
Next x
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Grafik bewegen
29.03.2006 14:57:42
Andy
Hallo Reinhard!
Mit der Zeile "Private Declare

Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)"
habe Ich ein Problem, es kommt die Fehlermeldung nach End 

Sub können nur kommentare stehen.

Anzeige
AW: Grafik bewegen
29.03.2006 15:32:57
Reinhard
Hi Andy,
der Code ist in Ordnung. Fehlermeldung hat andere Gründe.
Lösach mal den Arbeitsblätterinhalt und lade die Datei mal hoch.
Gruß
Reinhard
AW: Grafik bewegen
29.03.2006 16:30:44
Andy
Hallo Reinhard!
Es funktioniert sehr gut , Ich bedanke mich recht Herzlich bei Dir und bei Werner für die Hilfe.
Eine kleine Frage habe Ich noch, wo ändert man die Ratationsgeschwindigkeit?
Gruß Andy
Anzeige
Beim Schlafen (Sleep)
29.03.2006 16:49:01
Werner
Gute Sache Rainhard
Gruss Werner
AW: Grafik bewegen
29.03.2006 19:45:02
Herbert
hallo Reinhard,
interessant,aber das flackern sollte man noch entfernen...


For x = 0 To 500
    With ActiveSheet.Shapes("Rectangle 1")
        .Rotation = x
        .IncrementLeft 1
    End With
        Sleep 0.5
        DoEvents
Next

     gruß Herbert
Anzeige
Ja, das Flackern nervt, danke o.w.T.
29.03.2006 21:35:21
Reinhard

Gruß Reinhard ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
;
Anzeige

Infobox / Tutorial

Grafik bewegen in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um eine Autoform in Excel per VBA fließend zu bewegen und zu rotieren, kannst du folgenden Code verwenden. Dieser Code nutzt die Sleep-Funktion, um die Animation zu steuern:

Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub drehen()
    Dim x
    For x = 0 To 32
        ActiveSheet.Shapes("Rectangle 1").Select
        Selection.ShapeRange.Rotation = x
        Selection.ShapeRange.IncrementLeft 1
        Sleep 50
        Application.ScreenUpdating = True
    Next x
End Sub

In diesem Beispiel wird die Form um 32 Grad rotiert, während sie gleichzeitig nach links verschoben wird. Du kannst die Anzahl der Schritte und die Zeit in Millisekunden anpassen, um die Geschwindigkeit der Bewegung zu ändern.


Häufige Fehler und Lösungen

Fehler 1: Fehlermeldung nach End Sub – „Sub können nur Kommentare stehen.“

Lösung: Überprüfe, ob du die Private Declare-Zeile außerhalb einer Subroutine platziert hast. Sie sollte immer am Anfang des Moduls stehen.

Fehler 2: Flimmern der Grafik während der Bewegung.

Lösung: Füge DoEvents in die Schleife ein, um das Flackern zu reduzieren. Hier ist eine angepasste Version:

Sub drehen()
    Dim x
    For x = 0 To 500
        With ActiveSheet.Shapes("Rectangle 1")
            .Rotation = x
            .IncrementLeft 1
        End With
        Sleep 0.5
        DoEvents
    Next x
End Sub

Alternative Methoden

Eine weitere Möglichkeit, Grafiken in Excel zu bewegen, ist die Verwendung von benutzerdefinierten Animationen in PowerPoint. Wenn du Excel und PowerPoint kombinierst, kannst du die Animationen in PowerPoint erstellen und dann in Excel einfügen.


Praktische Beispiele

Hier sind einige Beispiele, wie du den oben genannten Code anpassen kannst:

  1. Rotation und Bewegung gleichzeitig: Du kannst die Rotation und die horizontale Bewegung kombinieren, um einen interessanten Effekt zu erzielen.

  2. Ändern der Form: Ändere ActiveSheet.Shapes("Rectangle 1") in den Namen jeder gewünschten Grafik in deinem Arbeitsblatt.

  3. Anpassung der Geschwindigkeit: Spiele mit den Werten in Sleep und der Anzahl der Schleifen, um die Animation langsamer oder schneller zu machen.


Tipps für Profis

  • Experimentiere mit verschiedenen Formen und Animationen, um deine Präsentationen lebendiger zu gestalten.
  • Nutze die Application.ScreenUpdating = False-Anweisung zu Beginn deiner Subroutine, um die Bildschirmaktualisierung während der Animation zu deaktivieren und die Performance zu verbessern.
  • Berücksichtige die Verwendung von Variablen, um die Rotation und Bewegung dynamisch zu steuern, z.B. durch Benutzereingaben.

FAQ: Häufige Fragen

1. Wo ändere ich die Rotationsgeschwindigkeit?
Die Rotationsgeschwindigkeit kannst du ändern, indem du den Wert in der Sleep-Funktion anpasst. Ein höherer Wert führt zu einer langsameren Bewegung.

2. Warum funktioniert mein Code nicht?
Stelle sicher, dass der Name der Form, die du animieren möchtest, korrekt ist und dass du die Sleep-Deklaration am richtigen Ort im Modul platziert hast.

3. Kann ich diesen Code auch in Excel 365 verwenden?
Ja, dieser VBA-Code funktioniert in Excel 365 sowie in anderen Versionen, die VBA unterstützen. Achte darauf, die richtigen Einstellungen für die Makros zu aktivieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige