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

Shapes alle auf gleiche Höhe

Forumthread: Shapes alle auf gleiche Höhe

Shapes alle auf gleiche Höhe
10.10.2013 10:13:00
Benedikt
Guten Morgen Excelfreunde
Ich habe eine Kalkulation welche mit Shapes eine einfache Skizze erstellt. Läuft auf 2007 und 2010. Nun ist ein Arbeitsplatz mit 2013 ausgerüstet worden und diverse Probleme sind aufgetaucht.
Die Kalkulation ist als Vorlage hinterlegt. Öffnen wir die Datei mit 07 oder 10 sind die Höhen und Breiten der Shapes alle gleich gross (4.69 x 3.73 cm), öffnen wir die
gleiche Vorlage mit 2013 sind die Shapes 4.73 x 3.86 cm. Wie muss ein Macro aussehen, welches beim Start alle Shapes auf 4.69 x 3.73 cm einstellt.
Oder liegt es an einer Einstellung von 2013?
Vielen Dank für eure Hilfe und einen ganz schönen Tag. Gruss Benedikt
https://www.herber.de/bbs/user/87600.xlsm

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Shapes alle auf gleiche Höhe
10.10.2013 10:49:32
Bastian
Hallo Benedikt,
mit folgendem Makro im Codefenster der Arbeitsmappe kannst Du alle Shapes im Arbeitsblatt Tabelle1 beim Öffnen der Arbeitsmappe anpassen. Es wird allerdings nicht die Position angepasst. Bei Bedarf einfach mal mit dem Makrorekorder aufzeichnen, und das Makro anpassen.
Option Explicit
Private Sub Workbook_Open()
Dim Shape As Shape
For Each Shape In Worksheets("Tabelle1").Shapes
Shape.Height = 132.9448818898
Shape.Width = 105.7322834646
Next Shape
End Sub
Gruß, Bastian

Anzeige
Shapes alle auf gleiche Höhe
10.10.2013 11:18:10
Benedikt
Vielen Dank Bastian
Leider kann ich nicht alle Shapes in der Tabelle pauschal vergrössern. Es hat noch Schaltflächen die nicht verändert werden müssen und diverse Gruppen mit Möbeln anderer Grösse welche wiederum individuel angepasst werden müssen. Also sollte ich eine Gruppe von Shapes auf Grösse X stellen eine weitere Gruppe auf Grösse Y und die nächste auf Grösse Z.
Warum Excel 2013 das bietet weiss ich nicht. Ich bin schwer am überlegen ob die 600 Euro für Office Pro gespült werden und wieder eine 2010er Lizenz gekauft wird.............

Anzeige
AW: Shapes alle auf gleiche Höhe
10.10.2013 11:26:16
Beverly
Hi,
du kannst doch unterscheiden, welche Shapes wie geändert werden müssen - z.B. am Namen oder an der Position im Tabellenblatt.


Danke Beverly, aber wie?
10.10.2013 11:46:53
Benedikt
Besten Dank Beverly
Jetzt ist genau Hilfe gefragt. Mit meinen VBA Kentnissen schaffe ich das ansprechen der Shapes nicht, da der Macrorekorder nicht hilft.
Die Shapes bezeichnen sich als Group 2083 etc.
Ich währe Dir sehr Dankbar für den professionellen Ansatz des Codes für zwei Gruppen mit mehreren Shapes.

Anzeige
AW: Danke Beverly, aber wie?
10.10.2013 15:22:21
Beverly
Hi,
nach diesem Prinzip:
Sub ShapesAnpassen()
Dim shaShape As Shape
Dim intShape As Integer
For Each shaShape In ActiveSheet.Shapes
If shaShape.DrawingObject.ShapeRange.Type = msoGroup Then
If shaShape.Name = "Group 2383" Then
For intShape = 1 To shaShape.GroupItems.Count
shaShape.GroupItems(intShape).Height = 134.0787  '


Anzeige
AW: Shapes alle auf gleiche Höhe
10.10.2013 11:49:50
Bastian
Hallo Benedikt,
Du kannst den Shapes, die angepasst werden sollen bestimmte Namen geben. Z.B. Rectangle 1, Rectangle 2 u.s.w.
Diesen Namen kannst Du dann im Makro abfragen: Shapes, welche im Namen "Rectangle" enthalten ändern, andere Shapes nicht ändern.
Option Explicit
Private Sub Workbook_Open()
Dim Shape As Shape
For Each Shape In Worksheets("Tabelle1").Shapes
'     Debug.Print Shape.Name
If InStr(1, Shape.Name, "Rectangle") Then
Shape.Height = 132.9448818898
Shape.Width = 105.7322834646
End If
Next Shape
End Sub

Gruß, Bastian

Anzeige
Vielen Dank Bastian und Beverly
10.10.2013 13:24:52
Benedikt
Vielen Dank für Eure Hilfe
So komme ich zurecht, aber warum 2013 Shapes veränder und der User von vorne beginnen darf bleibt im Dunkeln. Grundsätzlich bilde ich nun mit grossem Aufwand eine Schlaufe um ein Problem welches bis dato nicht vorhanden war.
Ich wünsche euch eine schöne Zeit und Danke für alles
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Shapes in Excel auf gleiche Höhe einstellen


Schritt-für-Schritt-Anleitung

Um alle Shapes in einem Excel-Arbeitsblatt auf eine einheitliche Höhe und Breite einzustellen, kannst Du ein einfaches VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und lade die Arbeitsmappe, in der Du die Shapes anpassen möchtest.

  2. Drücke ALT + F11, um den Visual Basic-Editor zu öffnen.

  3. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen > Modul.
  4. Kopiere und füge den folgenden Code ein:

    Option Explicit
    Private Sub Workbook_Open()
       Dim Shape As Shape
       For Each Shape In Worksheets("Tabelle1").Shapes
           Shape.Height = 132.9448818898 ' Höhe in Punkten
           Shape.Width = 105.7322834646   ' Breite in Punkten
       Next Shape
    End Sub
  5. Speichere die Arbeitsmappe als Makro-fähige Datei (*.xlsm).

  6. Schließe den Visual Basic-Editor und teste das Makro, indem Du die Arbeitsmappe erneut öffnest.


Häufige Fehler und Lösungen

  • Fehler: Shapes werden nicht angepasst
    Lösung: Stelle sicher, dass Du das Makro in der richtigen Arbeitsmappe platziert hast und dass die Shapes auf "Tabelle1" liegen.

  • Fehler: Shapes sind nicht auf die richtigen Maße eingestellt
    Lösung: Überprüfe, ob die Maße in Punkten korrekt angegeben sind. Excel verwendet Punkte als Maßeinheit für Shapes, nicht Zentimeter.


Alternative Methoden

Wenn Du keine VBA-Makros verwenden möchtest, kannst Du auch die Shapes manuell anpassen:

  1. Markiere die Shapes, die Du anpassen möchtest.
  2. Rechtsklicke auf eine der markierten Shapes und wähle Größe und Eigenschaften.
  3. Gib die gewünschten Werte für Höhe und Breite ein.

Dies ist allerdings zeitaufwändiger, besonders wenn Du viele Shapes hast.


Praktische Beispiele

Hier sind zwei Beispiele, wie Du spezifische Gruppen von Shapes anpassen kannst:

  1. Für Shapes, die einen bestimmten Namen haben:

    Sub AnpassungNachNamen()
       Dim Shape As Shape
       For Each Shape In ActiveSheet.Shapes
           If InStr(1, Shape.Name, "Rectangle") Then
               Shape.Height = 132.9448818898
               Shape.Width = 105.7322834646
           End If
       Next Shape
    End Sub
  2. Für Gruppen von Shapes:

    Sub GruppenAnpassen()
       Dim shaShape As Shape
       For Each shaShape In ActiveSheet.Shapes
           If shaShape.DrawingObject.ShapeRange.Type = msoGroup Then
               If shaShape.Name = "Group 2383" Then
                   Dim intShape As Integer
                   For intShape = 1 To shaShape.GroupItems.Count
                       shaShape.GroupItems(intShape).Height = 134.0787
                   Next intShape
               End If
           End If
       Next shaShape
    End Sub

Tipps für Profis

  • Verwende spezifische Namen für Shapes, sodass Du sie leichter im Code ansprechen kannst.
  • Nutze den Makrorekorder, um dir den Code für häufige Aufgaben zu erleichtern, und passe ihn dann manuell an.
  • Teste Deine Makros in einer Kopie der Arbeitsmappe, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Warum ändern sich die Maße der Shapes in Excel 2013?
Die Unterschiede in den Maßen können durch Änderungen in der Darstellung oder Skalierung zwischen verschiedenen Excel-Versionen bedingt sein.

2. Wie kann ich mehrere Shapes gleichzeitig auswählen?
Halte die STRG-Taste gedrückt und klicke auf die Shapes, die Du auswählen möchtest, oder ziehe einen Auswahlrahmen um die gewünschten Shapes.

3. Was sind die Maßeinheiten für Shapes?
In Excel werden die Maße für Shapes in Punkten angegeben. 1 Punkt entspricht 0,035 cm.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige