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

Forumthread: Shape Objekt drehen

Shape Objekt drehen
20.01.2017 12:27:33
Oisse
Hallo Zusammen,
mit folgendem Code füge ich ein Bild ein:
Call ActiveSheet.Shapes.AddPicture(Filename:=lPathCol & lPicNameCol, _
LinkToFile:=msoTrue, SaveWithDocument:=msoFalse, _
Left:=Columns(lPicColA).Left, Top:=Rows(int_Counter).Top, _
Width:=Application.CentimetersToPoints(bb), Height:=Application.CentimetersToPoints(bh))

Das funktioniert auch bestens.
Nun möchte ich genau dieses eingefügte Bild drehen.
Wie muss hier der Code weitergehen?
Ich weiß die Spalte, in der sich das Bild befindet und auch die Zeile.
Aber mit:
ActiveSheet.Shapes.Range("F" & int_Counter).Rotation = ActiveSheet.Shapes.Range("F" & int_Counter).Rotation + Grad

funktioniert es nicht, weil er einen Namen oder einen Index erwartet.
Wie bitte komme ich da dran, oder welche Gesamtlösung bietet sich hier?
Gruß Oisse
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laienhafte Hilfe ...
20.01.2017 12:50:14
Dieter(Drummer)
Hallo Oisse,
evtl. hilft dir dies Makro als Beispiel weiter. Hier kann z.B, ein Picture1 um 180 Grad nach rechts gedreht werden und es funktioniert. Du brauchst es also nur noch auf dein Shape, das sicher eine genaue Bezeichnung hat, anzupassen:
Sub PictureDrehen()
ActiveSheet.Shapes.Range(Array("Picture 1")).Select
Selection.ShapeRange.IncrementRotation 180 'z.B. Rechtsdrehung 180 Grad
End Sub

Anzeige
AW: Laienhafte Hilfe ...
20.01.2017 13:09:07
Oisse
Hallo Dieter,
danke für deine Hilfe.
Genau da liegt ja mein Problem, dass ich herausfinden muss, wie dieses Objekt heißt. Ich kenne den Namen des Bildes, vor dem Einfügen. Aber wie komme ich an den Namen, nach dem Einfügen.
Wenn jemand eine Lösung hat, wie ich das Bild drehen kann vor dem Einfügen wäre das genauso gut oder sogar noch besser.
Herzliche Grüße
Oisse
Anzeige
AW: Wenn Shape eingefügt ist ...
20.01.2017 13:17:25
Dieter(DRummer
... dann mit Maustaste Rechtsklick auf das Shape. Dann erscheint links oben in der Menüleiste der Name des Shape.
Gruß, Dieter(Drummer)
AW: Wenn Shape eingefügt ist ...
20.01.2017 14:36:44
Oisse
Danke Dieter,
aber ich bräuchte wenn dann den Namen im Makro, sonst muss ich ja jedesmal ins Namensfeld wechseln.
Das ist bei dutzenden Fotos doch etwas zu umständlich.
Herzlichen Gruß
Oisse
Anzeige
AW: Shape Objekt drehen
20.01.2017 13:22:58
ChrisL
Hi
Sub t()
Dim sh As Shape
' alle anderen Variablen definieren
Set sh = ActiveSheet.Shapes.AddPicture(Filename:=lPathCol & lPicNameCol, _
LinkToFile:=msoTrue, SaveWithDocument:=msoFalse, _
Left:=Columns(lPicColA).Left, Top:=Rows(int_Counter).Top, _
Width:=Application.CentimetersToPoints(bb), Height:=Application.CentimetersToPoints(bh))
sh.IncrementRotation 180
End Sub

cu
Chris
Anzeige
AW: Shape Objekt drehen
20.01.2017 14:35:03
Oisse
Servus Chris,
auch dir herzlichen Dank für die schnelle Hilfe.
Klappt!
Herzlichen Gruß
Oisse
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Shape Objekt in Excel drehen


Schritt-für-Schritt-Anleitung

Um ein Bild in Excel zu drehen, kannst Du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Bild einfügen: Füge ein Bild in Dein Excel-Arbeitsblatt ein. Du kannst dies mit dem folgenden Code tun:

    Call ActiveSheet.Shapes.AddPicture(Filename:=lPathCol & lPicNameCol, _
    LinkToFile:=msoTrue, SaveWithDocument:=msoFalse, _
    Left:=Columns(lPicColA).Left, Top:=Rows(int_Counter).Top, _
    Width:=Application.CentimetersToPoints(bb), Height:=Application.CentimetersToPoints(bh))
  2. Bild drehen: Verwende den folgenden Code, um das Bild um 180 Grad zu drehen:

    ActiveSheet.Shapes.Range(Array("Picture 1")).Select
    Selection.ShapeRange.IncrementRotation 180
  3. Alternative Lösung: Wenn Du den Namen des Shapes nicht kennst, kannst Du den Shape direkt in einer Variablen speichern und die Rotation darauf anwenden:

    Dim sh As Shape
    Set sh = ActiveSheet.Shapes.AddPicture(Filename:=lPathCol & lPicNameCol, _
    LinkToFile:=msoTrue, SaveWithDocument:=msoFalse, _
    Left:=Columns(lPicColA).Left, Top:=Rows(int_Counter).Top, _
    Width:=Application.CentimetersToPoints(bb), Height:=Application.CentimetersToPoints(bh))
    sh.IncrementRotation 180

Häufige Fehler und Lösungen

  • Fehler: "Shape nicht gefunden"

    • Lösung: Stelle sicher, dass der Name des Shapes exakt mit dem Namen im Code übereinstimmt. Überprüfe auch, ob das Bild tatsächlich eingefügt wurde.
  • Fehler: "Ungültiger Index"

    • Lösung: Verwende anstelle von Range("F" & int_Counter) den exakten Namen des Shapes wie Range(Array("Picture 1")).

Alternative Methoden

Falls Du nicht mit VBA arbeiten möchtest, gibt es auch manuelle Methoden:

  1. Bild in Word drehen: Wenn Du das Bild in Word hast, kannst Du dieses einfach mit der Maus drehen. Klicke auf das Bild und ziehe am grünen Drehpunkt.

  2. PowerPoint: In PowerPoint kannst Du Bilder ebenfalls einfach drehen. Wähle das Bild aus und nutze den Drehpunkt, um das Bild um 90 Grad oder mehr zu drehen.


Praktische Beispiele

  • Beispiel 1: Drehen eines Bildes um 90 Grad

    ActiveSheet.Shapes.Range(Array("Picture 1")).IncrementRotation 90
  • Beispiel 2: Drehen eines Bildes um 270 Grad

    ActiveSheet.Shapes.Range(Array("Picture 1")).IncrementRotation 270

Diese Beispiele zeigen, wie flexibel Du mit der Drehung von Shapes in Excel umgehen kannst.


Tipps für Profis

  • Automatisierung: Du kannst die Rotation in eine Schleife einfügen, um mehrere Bilder gleichzeitig zu drehen.
  • Dynamische Bildnamen: Lagere die Bildnamen in ein Array aus, um einen flexibleren Zugriff zu ermöglichen.
  • Fehlerbehandlung: Implementiere Error-Handling in Deinem VBA-Code, um unerwartete Probleme zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich ein Bild in Excel um 90 Grad drehen?
Verwende den Code ActiveSheet.Shapes.Range(Array("Picture 1")).IncrementRotation 90.

2. Kann ich die Rotation auch vor dem Einfügen des Bildes einstellen?
Leider kannst Du die Rotation nicht vor dem Einfügen des Bildes einstellen. Du musst das Bild zuerst einfügen und dann die Rotation anwenden.

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