bräuchte nochmal eure Hilfe. Ich möchte gerne in einem bestimmten Bereich (wichtig, nicht das ganze Tabellenblatt!) mehrere Shapes Gruppieren. Dabei kann es passieren, das die Shapes den identischen Namen haben.
Wenn ich es mit eindeutigen Namen kann, dann mache ich die Namen eindeutig.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
kenn ich nicht. Warum machst du die Namen nich eindeutig?
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
ich möchte gerne im Bereich von E12:O47 alles Shapes, die in diesem Bereich sind, per VBA Gruppieren. Dabei ist zu beachten, das die Shapes auch teilweise den gleichen Namen besitzen.
03.03.2017, 21:16 (Dieser Beitrag wurde zuletzt bearbeitet: 06.03.2017, 11:10 von Kuwer.)
Hallo Dirk,
teste es mal damit:
Sub GrafikenImBereichGruppieren() Dim lngA() AsLong Dim lngI AsLong Dim rngB As Range
ReDim lngA(0 To 0)
With ActiveSheet Set rngB = .Range("E12:O47") For lngI = 1 To .Shapes.Count If .Shapes(lngI).Top >= rngB.Top Then If .Shapes(lngI).Left >= rngB.Left Then If .Shapes(lngI).Top + .Shapes(lngI).Height <= rngB.Top + rngB.Height Then If .Shapes(lngI).Left + .Shapes(lngI).Width <= rngB.Left + rngB.Width Then IfLBound(lngA) = 0 Then
ReDim lngA(1 To 1) Else
ReDim Preserve lngA(1 ToUBound(lngA) + 1) EndIf
lngA(UBound(lngA)) = lngI EndIf EndIf EndIf EndIf Next lngI IfUBound(lngA) > 1 Then
.Shapes.Range(lngA).Group
MsgBox UBound(lngA) & " Objekte wurden gruppiert." Else IfUBound(lngA) = 1 Then
MsgBox "Es wurde nur ein Objekt gefunden." Else
MsgBox "Es wurde kein Objekt gefunden." EndIf EndIf EndWith EndSub