Clever-Excel-Forum

Normale Version: Mehrere Shapes gleichzeitig auswählen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Diese Sub funktioniert nicht:
ActiveSheet.Shapes.Range(Array("Rounded Rectangle 1", "Rounded Rectangle 29" _
        , "Rounded Rectangle 31", "Rounded Rectangle 32", "Rounded Rectangle 33", _
        "Rounded Rectangle 34", "Rounded Rectangle 40", "Rounded Rectangle 39", _
        "Rounded Rectangle 38", "Rounded Rectangle 37", "Rounded Rectangle 36", _
        "Rounded Rectangle 35", "Rounded Rectangle 41", "Rounded Rectangle 42", _
        "Rounded Rectangle 43", "Rounded Rectangle 44", "Rounded Rectangle 45", _
        "Rounded Rectangle 46", "Rounded Rectangle 52", "Rounded Rectangle 51", _
        "Rounded Rectangle 50", "Rounded Rectangle 49", "Rounded Rectangle 48", _
        "Rounded Rectangle 47")).Select
    Selection.ShapeRange.Line.Visible = msoFalse
    Selection.ShapeRange.Fill.Visible = msoFalse


Diese schon:
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 1")).Select
    Selection.ShapeRange.Line.Visible = msoFalse
    Selection.ShapeRange.Fill.Visible = msoFalse
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 29")).Select
    Selection.ShapeRange.Line.Visible = msoFalse
    Selection.ShapeRange.Fill.Visible = msoFalse


Also kannn ich die ganzen Rectangles nicht aufzählen und dann alle behandeln mit Line- und Fill Visible?

Beim 1. Beispiel wird Line Visible False gar nicht gesetzt.
Lies UNION.
Moin,

Wie immer: Verzichte auf die Hilfsobjekte und lass das Selektieren sein. Dann brauchst du auch kein ShapeRange Hilfsobjekt:
Code:
With Me.Shapes(Array("Rechteck 1","Rechteck 2","Rechteck 9"))
   .Fill.ForeColor.RGB = RGB(255,6,100)
End With

Viele Grüße
derHöpp

[Nachtrag:] "Funktioniert nicht" ist eine schlechte Fehlerbeschreibung, gewöhne dir bitte an, Fehlernummer und -meldung sowie erwartetes und erreichtes Ergebnis dazuzuschreiben.
(22.12.2022, 07:19)LCohen schrieb: [ -> ]Lies UNION.

VBEditor, F1

Application.Union Method 
Application.Union Method
Returns the union of two or more ranges

Alle Rechtecken:

Code:
Sub M_snb()
    For Each it In Sheet1.Shapes
      If instr(it.Name, "Rect") Then c00 = c00 & "_" & it.Name
    Next
   
    ActiveSheet.Shapes.Range(Split(Mid(c00, 2), "_")).Fill.ForeColor.RGB = RGB(0, 255, 0)
End Sub