Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Grafik schrittweise alleine drehen

Grafik schrittweise alleine drehen
18.10.2019 17:25:20
Dieter(Drummer)
Guten Tag Spezialsiten/inen,
mit dem Makro wird die Grafik ("Group1"), mit Mausklick jeweils um 45 Grad gedreht. Das funktioniert.
Wie muss der Cod lauten, damit KEIN Folge-Klick notwendig ist, sondern mit Wartezeit einer Sekunde, jeweils eine weitere Drehung um 45 Grad erfolgt, bis zur Anfangsposition?
Mit der Bitte um Hilfe,
grüßt,
Dieter(Drummer)

Sub Group1_Rechts() 'Group1
Dim objShp As Shape
Set objShp = Sheets("Tabelle1").Shapes("Group1")
'Application.Wait (Now + TimeValue("00:00:01")) '1 Sek. Zeitverzögerung
objShp.Rotation = objShp.Rotation + 45
Set objShp = Nothing
End Sub

Anzeige

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Grafik schrittweise alleine drehen
18.10.2019 17:30:01
Hajo_Zi
Hallo Dieter,
also kein Ende
Sub Group1_Rechts() 'Group1
Dim objShp As Shape
Set objShp = Sheets("Tabelle1").Shapes("Group1")
do
Application.Wait (Now + TimeValue("00:00:01")) '1 Sek. Zeitverzögerung
objShp.Rotation = objShp.Rotation + 45
Loop
Set objShp = Nothing
End Sub


Anzeige
AW: Grafik schrittweise alleine drehen
18.10.2019 17:35:55
Dieter(Drummer)
Danke Hajo,
klappt schon recht gut. Nur es läuft dann endlos weiter. Es sollte aber NUR ein durchlauf sein, also nur bis wieder die Anfangsposition erreicht ist. Geht das auch?
Gruß, Dieter(Drummer)
AW: Grafik schrittweise alleine drehen
18.10.2019 17:37:41
Hajo_Zi
das Stans nicht im Beitrag
Sub Group1_Rechts() 'Group1
Dim objShp As Shape
Set objShp = Sheets("Tabelle1").Shapes("Group1")
objShp.Rotation = objShp.Rotation + 4
Application.Wait (Now + TimeValue("00:00:01")) '1 Sek. Zeitverzögerung
objShp.Rotation = objShp.Rotation + 4
Application.Wait (Now + TimeValue("00:00:01")) '1 Sek. Zeitverzögerung
objShp.Rotation = objShp.Rotation + 4
Application.Wait (Now + TimeValue("00:00:01")) '1 Sek. Zeitverzögerung
objShp.Rotation = objShp.Rotation + 4
Application.Wait (Now + TimeValue("00:00:01")) '1 Sek. Zeitverzögerung
Set objShp = Nothing
End Sub
Gruß Hajo
Anzeige
AW: Grafik schrittweise alleine drehen
18.10.2019 17:40:12
Oberschlumpf
Hi HaJo,
Zitat aus Erstbeitrag: ...bis zur Anfangsposition
Hab ich sofort so interpretiert, dass einmal komplett drehen, dann ende.
Ciao
Thorsten
AW: Grafik schrittweise alleine drehen
18.10.2019 17:40:25
Dieter(Drummer)
Sorry Hajo,
es stand im Beitrag. Dennoch Danke für Deine Hilfe und es passt.
Gruß, Dieter(Drummer)
AW: Grafik schrittweise alleine drehen
18.10.2019 17:32:35
onur
Einfach die 2 eingerückten Zeilen in einer Schleife 8x hintereinander laufen lassen (vorher die .Wait-Zeile reaktivieren).
Anzeige
AW: Grafik schrittweise alleine drehen
18.10.2019 17:41:38
Dieter(Drummer)
Danke Onur,
klappt prima.
Gruß, Dieter(Drummer)
AW: Grafik schrittweise alleine drehen
18.10.2019 17:38:15
Oberschlumpf
hi Dieter,
versuch es so:
Sub Group1_Rechts() 'Group1
Dim objShp As Shape
Dim liDauer As Integer
Set objShp = Sheets("Tabelle1").Shapes("Group1")
Application.enableevents=false
For liDauer = 1 To 8
Application.Wait (Now + TimeValue("00:00:01")) '1 Sek. Zeitverzögerung
objShp.Rotation = objShp.Rotation + 45
Next
Application.enableevents=true
Set objShp = Nothing
End Sub

Hilfts?
Ciao
Thorsten
Anzeige
AW: Grafik schrittweise alleine drehen
18.10.2019 17:43:49
Dieter(Drummer)
Danke Thorsten,
Deine Variante passt auch perfekt und klappt.
Danke und Gruß,
Dieter(Drummer)
AW: Grafik schrittweise alleine drehen
18.10.2019 18:14:55
Dieter(Drummer)
Hallo Thorsten,
hast Du eine Idee, warum bei 8 Durchläufen (bei 45 Grad), der 7. ausfällt.
Zum besseren Verständnis, hier eine Musterdatei: https://www.herber.de/bbs/user/132590.xlsm
Grß, Dieter(Drummer)
Anzeige
AW: Jetzt läuft es rund ...
18.10.2019 19:29:47
Dieter(Drummer)
Hallo Thorsten,
nach probieren läuft es jetzt korrekt, habe zusätzlich 3 Zeilen (Fett) eingefügt.
Danke für Deine Hilfe und
Gruß, Dieter(Drummer)
Jetziger Code:
'Kürzere Variante. Herber: von Oberschlumpf (Thorsten)am 18.10.2019 17:38:15
Sub Group1_Rechts_Thorsten() 'Group1
Dim objShp As Shape
Dim liDauer As Integer
Set objShp = Sheets("Tabelle1").Shapes("Group1")
Application.EnableEvents = False
For liDauer = 0 To 8 - 1 '8 nur bei 45 Grad Drehung
Application.Wait (Now + TimeValue("00:00:01")) '1 Sek. Zeitverzögerung
objShp.Rotation = objShp.Rotation + 45
Next
objShp.Rotation = objShp.Rotation - 45 'mx
Application.Wait (Now + TimeValue("00:00:01"))
objShp.Rotation = objShp.Rotation + 45 'mx
Application.EnableEvents = True
Set objShp = Nothing
End Sub

https://www.herber.de/bbs/user/132594.xlsm
Anzeige
AW: Grafik schrittweise alleine drehen
18.10.2019 17:51:32
Daniel
Hi
mit For-Schleife aus der Ausgangsstellung und zurück, wenn zum Startzeitpunkt keine Drehung eingestellt ist:
dim Grad as Long
for Grad = 0 to 360 Step 45
objShp.Rotation = Grad
Applicatioin.Wait ...
Next
gruß Daniel
AW: Grafik schrittweise alleine drehen
18.10.2019 18:02:45
Dieter(Drummer)
Danke Daniel,
für Deinen Hinweis und Teilcode.
Leider bin ich nicht so fit in VBA, um diesen richtig einzufügen. Evtl. könntest Du da nochmal behilflich sein.
Gruß, Dieter(Drummer)
Anzeige
AW: Grafik schrittweise alleine drehen
18.10.2019 18:06:18
Daniel
och Dieter, den anderen Code hast du doch auch hinbekommen und das ist ja nicht komplizierter.
du bist doch jetzt auch lang genug am Start um sowas alleine hinzubekommen.
Gib dir mal ein bisschen Mühe, sonst fange ich noch irgendwann an, Verständnis für robert und seine Meckereinen zu entwickeln.
Gruß Daniel
Anzeige
AW: Werde mich bemühen :-) owT
18.10.2019 18:08:54
Dieter(Drummer)
..endlich verstehst Du mich :-) owT
18.10.2019 18:09:12
robert
AW: Grafik schrittweise alleine drehen
18.10.2019 18:10:54
onur
Abgesehen davon: Wieviel funktionierende Versionen willst du denn noch?
Anzeige
AW: Grafik schrittweise alleine drehen
18.10.2019 18:18:04
Dieter(Drummer)
Hallo Onur,
es ist auch sehr interessant, welche Varianten möglich sind.
Ich versuche auch dazu zu lernen, wenn es auch mancher hier im Forum anders sieht.
Gruß, Dieter(Drummer)
AW: Dank an ALLE ...
18.10.2019 18:27:41
Dieter(Drummer)
... und werde alle Varianten Testen und versuchen, daraus zu lernen ;-).
Gruß und eine erfreulichen Abend,
Dieter(Drummer)
Anzeige
AW: Herzlichen Dank, nun geht auch Dein Code ...
19.10.2019 09:40:36
Dieter(Drummer)
Guten Morgen Daniel,
... nach einigem Experimentieren.
Folgendes musste ich wohl ändern:
1)

'objShp("Group1").Rotation = Grad

Zeile habe ich deaktiviert, da ein Fehler kommt, "Fehler 438, Objekt unterstützt die Eigenschaften oder Methode nicht".
2) Statt 360 (8 x 45 Grad) musste ich 315 (7 x 45 Grad) einsetzen, da sonst eine Drehung zuviel läuft und der Startpunkt einen zuweit geht.
Es klappt jetzt und hier der jetzige Code von Dir, mit meinen Anpassungen:
Sub Test_Daniel()
Dim Grad As Long
Dim objShp As Shape
Set objShp = Sheets("Tabelle1").Shapes("Group1")
For Grad = 0 To 315 Step 45
'objShp("Group1").Rotation = Grad 'Fehler 438, Objekt unterstützt die Eigenschfaten oder  _
Methode nicht
objShp.Rotation = objShp.Rotation + 45
Application.Wait (Now + TimeValue("00:00:01")) '1 Sek. Zeitverzögerung
Next
End Sub
Danke für Deine Hilfe und auch Anmerkung ;-).
Gruß, Dieter(Drummer)
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Grafik Schritt für Schritt Drehen in Excel


Schritt-für-Schritt-Anleitung

Um eine Grafik in Excel schrittweise um 45 Grad zu drehen, kannst du ein VBA-Makro verwenden. Hier ist eine einfache Anleitung:

  1. Öffne Excel und erstelle ein neues Arbeitsblatt oder verwende ein bestehendes.

  2. Füge eine Gruppe von Formen oder ein Bild in das Arbeitsblatt ein.

  3. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  4. Wähle im Menü "Einfügen" die Option "Modul".

  5. Kopiere den folgenden Code in das Modul:

    Sub Group1_Rechts() 'Group1
       Dim objShp As Shape
       Set objShp = Sheets("Tabelle1").Shapes("Group1")
       Application.EnableEvents = False
       For i = 1 To 8 ' Anzahl der 45 Grad Drehungen
           Application.Wait (Now + TimeValue("00:00:01")) ' 1 Sek. Zeitverzögerung
           objShp.Rotation = objShp.Rotation + 45
       Next i
       Application.EnableEvents = True
       Set objShp = Nothing
    End Sub
  6. Schließe den VBA-Editor und kehre zum Excel-Arbeitsblatt zurück.

  7. Führe das Makro aus, indem du ALT + F8 drückst und das Makro Group1_Rechts auswählst.

Das Bild oder die Grafik wird nun schrittweise um 45 Grad gedreht.


Häufige Fehler und Lösungen

  • Fehler 438: Objekt unterstützt die Eigenschaft oder Methode nicht: Dieser Fehler tritt auf, wenn die Referenz auf das Shape-Objekt nicht korrekt ist. Stelle sicher, dass der Name des Shapes ("Group1") exakt übereinstimmt.
  • Die Grafik dreht sich nicht: Überprüfe, ob das Makro aktiviert ist. Du kannst auch sicherstellen, dass das Shape korrekt benannt ist und sich auf dem aktiven Blatt befindet.
  • Endloser Loop: Wenn das Makro in einer Schleife läuft und du keine Kontrolle über den Ablauf hast, stelle sicher, dass die Schleife eine klare Abbruchbedingung hat.

Alternative Methoden

Eine weitere Möglichkeit, eine Grafik in Excel zu drehen, besteht darin, die Drehung über Word zu steuern. Wenn du ein Diagramm in Word drehst, kannst du die folgenden Schritte befolgen:

  1. Füge das Diagramm in ein Word-Dokument ein.
  2. Klicke auf das Diagramm, um es auszuwählen.
  3. Verwende die Formatierungsoptionen, um das Diagramm zu drehen. Du kannst das Diagramm auch mit der Maus an einem der Ecken ziehen, um es manuell zu drehen.

Diese Methode ist nützlich, wenn du in Word arbeitest und das Diagramm anschließend in Excel verwenden möchtest.


Praktische Beispiele

Hier sind einige nützliche Beispiele für Variationen der Grafikdrehung:

  • Diagramm drehen in Word: Verwende die oben beschriebenen Schritte, um ein Diagramm in Word zu drehen, bevor du es in Excel importierst.
  • Excel Bild drehen: Um ein Bild in Excel zu drehen, kannst du die Methode objShp.Rotation auf ähnliche Weise verwenden, um das Bild nach Bedarf zu drehen.

Ein Beispielcode für die Drehung eines Bildes könnte so aussehen:

Sub Bild_Drehen()
   Dim objBild As Shape
   Set objBild = Sheets("Tabelle1").Shapes("Bild1")
   objBild.Rotation = objBild.Rotation + 90 ' 90 Grad Drehung
End Sub

Tipps für Profis

  • Experimentiere mit verschiedenen Drehwinkeln, um kreative Effekte zu erzielen. Du kannst auch andere Werte als 45 Grad verwenden, um interessante Ergebnisse zu erzeugen.
  • Nutze die Application.EnableEvents-Eigenschaft, um zu verhindern, dass das Makro bei Änderungen an anderen Zellen unerwartet stoppt.
  • Wenn du mehrere Grafiken drehst, kannst du eine Schleife verwenden, um jede Grafik nacheinander zu bearbeiten.

FAQ: Häufige Fragen

1. Wie kann ich die Drehung eines Diagramms in Word anpassen? Du kannst das Diagramm in Word auswählen und die Drehung mithilfe der Formatierungswerkzeuge oder durch Ziehen an der Ecke des Diagramms anpassen.

2. Gibt es eine Möglichkeit, die Drehung in Excel zu automatisieren? Ja, durch die Verwendung von VBA kannst du Automatisierungen erstellen, die es ermöglichen, Grafiken und Bilder in Excel automatisch zu drehen. Die oben genannten Codes sind gute Ausgangspunkte.

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