Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formen zählen

Forumthread: Formen zählen

Formen zählen
04.03.2022 13:19:54
Klausi
Hallo zusammen,
kann mir jemand sagen, ob und wie man Formen zählen kann in Excel (VBA)?
Etwas genauer gefragt:
Ich habe ein Arbeitsblatt, auf dem viele verschiedenfarbige Formen (Kreise) sind. Diese ändern mithilfe des folgenden Codes ihre Farbe.
Sub FarbeÄndern() Dim Farbe(0 To 4) Farbe(0) = RGB(255, 255, 255) Farbe(1) = RGB(0, 255, 0) Farbe(2) = RGB(0, 255, 255) Farbe(3) = RGB(255, 0, 255) Farbe(4) = RGB(255, 255, 0) With ActiveSheet.Shapes(Application.Caller).Fill.ForeColor Select Case .RGB Case Farbe(0): .RGB = Farbe(1) Case Farbe(1): .RGB = Farbe(2) Case Farbe(2): .RGB = Farbe(3) Case Farbe(3): .RGB = Farbe(4) Case Farbe(4): .RGB = Farbe(0) End Select End With End Sub >
Jetzt will ich eine Liste einfügen, in der gezählt wird, wie viele der Formen rot, grün, etc. sind.
Also im Prinzip Zählenwenn auf verschieden gefärbte Formen angewandt.
Vielen Dank
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formen zählen
04.03.2022 13:39:37
MCO
Hallo!
Grundsätzlich:

ActiveSheet.Shapes.count
Aber wenn du nach Farbe zählen willst dann musst du ähnlich vorgehen wie beim Zuweisen der farben:

dim zähl_0 as long,zähl_1 as long,zähl_2 as long,zähl_3 as long,zähl_4 as long
Farbe(0) = RGB(255, 255, 255)
Farbe(1) = RGB(0, 255, 0)
Farbe(2) = RGB(0, 255, 255)
Farbe(3) = RGB(255, 0, 255)
Farbe(4) = RGB(255, 255, 0)
for each kreis in activesheets.shapes
select case kreis.rgb
case  Farbe(0) : zähl_0 = zähl_0 = +1
case  Farbe(1) : zähl_1 = zähl_1 = +1
usw
end select.
msgbox Farbe(0) & " gibt es " & zähl_0 & "x",vbokonly
next kreis
Viel Erfolg!
Gruß, MCO
Anzeige
AW: Formen zählen
04.03.2022 13:54:42
Rudi
Hallo,

Sub FarbeZaehlen()
Dim Farbe(4), Anzahl(4) As Integer, i As Integer
Dim shp As Shape
Farbe(0) = RGB(255, 255, 255)
Farbe(1) = RGB(0, 255, 0)
Farbe(2) = RGB(0, 255, 255)
Farbe(3) = RGB(255, 0, 255)
Farbe(4) = RGB(255, 255, 0)
For Each shp In ActiveSheet.Shapes
For i = 0 To 4
If shp.Fill.ForeColor.RGB = Farbe(i) Then
Anzahl(i) = Anzahl(i) + 1
End If
Next i
Next shp
For i = 0 To 4
MsgBox "Farbe " & i & ": " & Anzahl(i) & "x"
Next i
End Sub
Gruß
Rudi
Anzeige
AW: Formen zählen
04.03.2022 14:14:51
Klausi
Besten Dank euch beiden.
Das klappt schon besser als ich es erwartet habe.
Leider bin ich jetzt etwas überfordert und weiß nicht, wie ich es schaffe, dass die Ergebnisse nicht in einer MsgBox erscheinen, sondern jeweils in einer Zelle.
Farbe(0) in Zelle A2
Farbe(1) in Zelle A3
...
Anzeige
AW: Formen zählen
04.03.2022 14:35:49
UweD
HAllo
ungetestet...

For i = 0 To 4
Cells(i+2,1)= Anzahl(i)
Next i
...
LG UweD
;

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