ActiveSheet.Shapes.Count
Gruß
Martin Beck
Danke!!
Öffne Excel und lade das Arbeitsblatt, auf dem Du die Shapes zählen möchtest.
Drücke ALT + F11, um den VBA-Editor zu öffnen.
Füge ein neues Modul hinzu:
Einfügen > Modul.Gib den folgenden Code ein, um die Anzahl der Shapes zu zählen:
Sub CountShapes()
Dim shapeCount As Long
shapeCount = ActiveSheet.Shapes.Count
MsgBox "Anzahl der Shapes: " & shapeCount
End Sub
Starte das Makro:
F5 oder gehe zu Run > Run Sub/UserForm.Eine Nachricht zeigt die Anzahl der Shapes auf dem aktiven Blatt an.
Problem: "Der Code funktioniert nicht!"
ActiveSheet.Shapes.Count sollte korrekt sein.Problem: "Ich bekomme eine Fehlermeldung."
Wenn Du die Anzahl der Shapes ohne VBA zählen möchtest, kannst Du auch die Excel-Funktion verwenden:
=ANZAHL2(SHAPES(A1:A100))
Diese Methode ist allerdings weniger flexibel und funktioniert nicht in allen Excel-Versionen.
Beispiel 1: Zähle die Shapes in einem Diagrammblatt:
Sub CountShapesInChart()
Dim shapeCount As Long
shapeCount = ActiveSheet.ChartObjects(1).Chart.Shapes.Count
MsgBox "Anzahl der Shapes im Diagramm: " & shapeCount
End Sub
Beispiel 2: Zähle und speichere die Anzahl der Shapes in einer Zelle:
Sub SaveShapeCountToCell()
ActiveSheet.Range("A1").Value = ActiveSheet.Shapes.Count
End Sub
activesheet.shapes.vba in Kombination mit anderen VBA-Funktionen, um komplexere Analysen durchzuführen.For Each-Schleifen, um spezifische Shapes zu identifizieren und deren Eigenschaften auszulesen.1. Wie zähle ich Shapes in einem bestimmten Bereich? Du kannst die Shapes in einem bestimmten Bereich zählen, indem Du die Shapes sammelst und durch sie iterierst. Das könnte so aussehen:
Sub CountShapesInRange()
Dim shapeCount As Long
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If Not Intersect(shp.TopLeftCell, ActiveSheet.Range("A1:B10")) Is Nothing Then
shapeCount = shapeCount + 1
End If
Next shp
MsgBox "Anzahl der Shapes im Bereich A1:B10: " & shapeCount
End Sub
2. Was ist der Unterschied zwischen Shapes.Count und ChartObjects.Count?
Shapes.Count zählt alle Shapes auf dem Arbeitsblatt, während ChartObjects.Count nur die Diagramme zählt. Wenn Du also nur die Diagramme zählen möchtest, solltest Du ActiveSheet.ChartObjects.Count verwenden.