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

Gruppierung verschieben

Forumthread: Gruppierung verschieben

Gruppierung verschieben
25.07.2002 13:36:03
Daniel
Hallo zusammen
ich habe folgendes Problem. Ich muss drei vierecke auf einem Sheet erstellen welche gruppiert sind (s. Code) und an der aktuellen Zellposition eingefügt werden sollen. Das funktioniert auch so weit. Mein Problem ist wie kann ich diese Elemente gruppiert verschieben an den Zielort.
Danke für eure Hilfe
Daniel
Sourcecode:
Sub GrafikInsertActiveCell()
Dim shp As Shape
Dim GrafikName(0 To 3) As String
Dim i As Integer
Application.ScreenUpdating = False

'* Erstellen des ersten Rechtecks
Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0, 0, 120, 40)
With shp
.Fill.ForeColor.SchemeColor = 26
.Line.Weight = 2
End With

s = shp.Name
GrafikName(i) = s
i = i + 1

'* Erstellen des zweiten Rechtecks
Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0, 0, 60, 20)
With shp
.Fill.ForeColor.SchemeColor = 22
.Line.Weight = 2
End With

s = shp.Name
GrafikName(i) = s
i = i + 1

'* Erstellen des dritten Rechtecks
Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0, 40, 60, 20)
With shp
.Fill.ForeColor.SchemeColor = 22
.Line.Weight = 0
End With

s = shp.Name
GrafikName(i) = s

'* Gruppieren der erstellten Zeichnungselemente
?????????????????????????????????????????????????????????????
ActiveSheet.Shapes.Range(Array(GrafikName(0), GrafikName(1), GrafikName(2))).Select

Set shp = ActiveSheet.Shapes(GrafikName(x))
shp.Top = ActiveCell.Top
shp.Left = ActiveCell.Left

Application.ScreenUpdating = True

Range("A1").Select
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Gruppierung verschieben
26.07.2002 07:56:42
Coach
Hallo Daniel,

Gruppieren und benennen kannst Du mit (Bezeichner sind Beispiele):
ActiveSheet.Shapes.Range(Array("Oval 3", "Rectangle 4", "Rectangle 1")).Group.Name = "Test"

verschieben dann mit:
With ActiveSheet.Shapes("Test")
.IncrementLeft 100
.IncrementTop 100
End With

Gruß Coach

Anzeige
Re: Gruppierung verschieben
26.07.2002 14:50:45
Daniel
Hallo Coach
vielen dank funktioniert tadellos. Ich hätte noch eine weitere Frage diesbezüglich, wie kann ich die Gruppe anschliessend wieder entgruppieren, ich habe es mit ungroup versucht habe aber eine Fehlermeldung gekriegt. Ich habe da wohl noch nicht alles richtig hingekriegt.
Vielen Dank und Gruss
Daniel
Anzeige
;
Anzeige

Infobox / Tutorial

Gruppierung von Formen in Excel verschieben


Schritt-für-Schritt-Anleitung

  1. Erstelle die Formen: Verwende den folgenden VBA-Code, um Rechtecke zu erstellen. Du kannst die Farben mit vba schemecolor anpassen:

    Sub GrafikInsertActiveCell()
        Dim shp As Shape
        Dim GrafikName(0 To 2) As String
        Dim i As Integer
        Application.ScreenUpdating = False
    
        ' Erstellen des ersten Rechtecks
        Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0, 0, 120, 40)
        With shp
            .Fill.ForeColor.SchemeColor = 26
            .Line.Weight = 2
        End With
        GrafikName(i) = shp.Name
        i = i + 1
    
        ' Erstellen des zweiten Rechtecks
        Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0, 0, 60, 20)
        With shp
            .Fill.ForeColor.SchemeColor = 22
            .Line.Weight = 2
        End With
        GrafikName(i) = shp.Name
        i = i + 1
    
        ' Erstellen des dritten Rechtecks
        Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0, 40, 60, 20)
        With shp
            .Fill.ForeColor.SchemeColor = 22
            .Line.Weight = 0
        End With
        GrafikName(i) = shp.Name
    
        ' Gruppieren der Formen
        ActiveSheet.Shapes.Range(Array(GrafikName(0), GrafikName(1), GrafikName(2))).Group.Name = "MeineGruppe"
    
        ' Verschieben der Gruppe
        With ActiveSheet.Shapes("MeineGruppe")
            .IncrementLeft ActiveCell.Left
            .IncrementTop ActiveCell.Top
        End With
    
        Application.ScreenUpdating = True
    End Sub
  2. Verschieben der Gruppe: Du kannst die Gruppe nach dem Erstellen und Gruppieren mit IncrementLeft und IncrementTop verschieben.

  3. Entgruppieren der Formen: Um die Gruppe wieder zu entgruppieren, kannst du folgenden Code verwenden:

    ActiveSheet.Shapes("MeineGruppe").Ungroup

Häufige Fehler und Lösungen

  • Fehlermeldung beim Entgruppieren: Wenn du beim Entgruppieren eine Fehlermeldung erhältst, stelle sicher, dass die Gruppe tatsächlich existiert und korrekt benannt ist. Überprüfe den Namen mit ActiveSheet.Shapes("MeinGruppenname").

  • Formen nicht sichtbar: Wenn die Formen nicht sichtbar sind, überprüfe die Position und die Sichtbarkeit der Layer. Stelle sicher, dass sie sich nicht hinter anderen Objekten befinden.


Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die integrierten Excel-Funktionen nutzen, um Formen manuell zu gruppieren:

  1. Halte die Strg-Taste gedrückt und klicke auf die einzelnen Formen, die du gruppieren möchtest.
  2. Klicke mit der rechten Maustaste und wähle „Gruppieren“ aus dem Kontextmenü.

Diese Methode eignet sich gut, wenn du keine Programmierkenntnisse hast.


Praktische Beispiele

  • Gruppierung umdrehen: Um die Anordnung der Gruppen zu ändern, kannst du die Formen zuerst gruppieren und dann mit IncrementLeft und IncrementTop die Position anpassen. Dies hilft besonders bei der Erstellung eines Vertretungsplans in Excel, wo du mehrere Formen in einer bestimmten Reihenfolge anordnen möchtest.

Tipps für Profis

  • Nutze die With-Anweisung in VBA, um den Code übersichtlicher zu gestalten.

  • Experimentiere mit verschiedenen SchemeColor-Werten, um die Farben deiner Formen anzupassen. Dies kann das visuelle Design deines Excel-Dokuments erheblich verbessern.

  • Speichere regelmäßig, während du mit VBA arbeitest, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich die Farbe der Formen ändern?
Du kannst die Farbe der Formen mit der Fill.ForeColor.SchemeColor-Eigenschaft ändern.

2. Kann ich die gruppierten Formen in eine andere Arbeitsmappe verschieben?
Ja, du kannst die Gruppe kopieren und in eine andere Arbeitsmappe einfügen, indem du die Gruppe auswählst und Strg+C und Strg+V verwendest.

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