Clever-Excel-Forum

Normale Version: Figuren ausrichten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ein freundliches „Hallo“ in die Runde,

ich habe auf einem Arbeitsblatt mehrere Formen untereinander stehen (gerundetes Rechteck). Mithilfe der Registerkarte Formformat --> Objekte ausrichten --> vertikal verteilen, lassen sich die Formen im gleichmäßigen Abstand untereinander anordnen.
Nun würde ich gerne einen Abstand von jeweils 2 cm eintragen – also die 2. Form steht 2 cm unterhalb der ersten Form, die 3. Form dann wieder 2 cm unterhalb der 2. Form.
Lässt sich so etwas auch in Excel bewerkstelligen? In PowerPoint kann man dies mit eingeblendeten Rasterlinien (ein wenig umständlich) vornehmen.

Gibt es hierfür eine Lösung auch in Excel365 – dann würde ich mich über Euere Antworten freuen.

Herzlichen Dank vorweg für Eure Mühe.

Gruß Daniel
Moin!
Bei gedrückter Alt-Taste "docken" die Formen beim Verschieben an einer Gitternetzlinie an.
Du musst vorher evtl. die Zeilenhöhen wunschgemäß einstellen.

Gruß Ralf
Hi,

das was in PP die Rasterlinien sind, sin in Excel die Gitternetzlinien. Im gleichen Menu, in dem du das vertikale Ausrichten auswählst, kannst du die Gitternetzlinien auch aus-/einschalten. Wink

Du kannst auch einfach hingeben und die oberste und unterste Form auf die gewünschte Position setzen und dann "vertikal verteilen" auswählen, dann sortieren sich die anderen Formen mit gleichmäßigen Abständen dazwischen ein.
Danke für Eure Rückmeldung. Die Frage ging eher dahin, ob es hier vielleicht einen „Automatismus“  gibt – also vertikaler Abstand: 2 cm.
Dies scheint es aber nicht zu geben.
Also werde ich den Vorschlag von Ralf umsetzen. Allerdings muss ich hierfür wohl in das Seitenlayout wechseln, um einen genauen Abstand von 2 cm zu erhalten.

Danke & Gruß, Daniel
(06.03.2024, 15:50)Stoef schrieb: [ -> ]Allerdings muss ich hierfür wohl in das Seitenlayout wechseln, um einen genauen Abstand von 2 cm zu erhalten.

Jein!
Genau bekommst Du es in Excel niemals hin (hier ist eher Word vorzuziehen).
Da hat manch Druckertreiber Zipperlein.
Schließlich hat eine Tabellenkalkulation auch nicht den Anspruch, DTP-fähig zu sein.
Dafür kann ein DTP-Programm schließlich auch schlecht rechnen …  21
Hallo

Objekte kann man auch mit VBA auflisten, und anschließend neu anordnen. Dazu der untere Code.
Aufgelistet wird in ein neu erstelltes Sheet mit dem Namen "Info".  Es listet alle Tabellen Objekte auf.

mfg Gast 123

Code:
Sub Objekte_auflisten()
Dim Test As Object, i, j, z: z = 3
On Error Resume Next
Set Test = Worksheets("Info")
If Err > 0 Then
   Worksheets.Add after:=Sheets(Sheets.Count)
   ActiveSheet.Name = "Info"
End If
With Worksheets("Info")
    .Range("A2:I100").ClearContents
    For j = 1 To Worksheets.Count - 1
      .Cells(z, 1) = Worksheets(j).Name
      For i = 1 To Worksheets(j).DrawingObjects.Count
          Txt = Worksheets(j).DrawingObjects(i).OnAction
         .Cells(z, 2) = Worksheets(j).DrawingObjects(i).Name
         .Cells(z, 3) = Worksheets(j).DrawingObjects(i).Caption
         .Cells(z, 4) = Worksheets(j).DrawingObjects(i).Top
         .Cells(z, 5) = Worksheets(j).DrawingObjects(i).Left
         .Cells(z, 6) = Worksheets(j).DrawingObjects(i).Width
         .Cells(z, 7) = Worksheets(j).DrawingObjects(i).Height
         .Cells(z, 8) = Worksheets(j).DrawingObjects(i).Placement
         .Cells(z, 9) = Mid(Txt, InStr(Txt, "!") + 1)
          z = z + 1
      Next i
    Next j: .Select
End With
End Sub



Sub Objekte_ausrichten()
Dim Test As Object, i, j, z: z = 3
Worksheets("Info").Select
With Worksheets("Info")
    For j = 1 To Worksheets.Count - 1
      For i = 1 To Worksheets(j).DrawingObjects.Count
          Worksheets(j).DrawingObjects(i).Top = .Cells(z, 4)
          Worksheets(j).DrawingObjects(i).Left = .Cells(z, 5)
          Worksheets(j).DrawingObjects(i).Width = .Cells(z, 6)
          Worksheets(j).DrawingObjects(i).Height = .Cells(z, 7)
          Worksheets(j).DrawingObjects(i).Placement = 2
          z = z + 1
      Next i
    Next j
End With
End Sub