Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1016to1020
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

farbliche Zellen sollen gezählt werden

farbliche Zellen sollen gezählt werden
22.10.2008 15:37:00
Andreas
Hallo,
ich hab folgendes Problem:
Ich hab Dateien, die sehr umfangreich sind, wo Zellen mit Texten, mit Zahlen und leere Zellen vorkommen. Zudem sind die Zellen sehr unterschiedlich von der farblichen Gestaltung.
Die Aufgabe soll sein, dass ich eine MsgBox erhalte mit den Informationen zu den weißen Feldern, welche Zahlen enthalten die ungleich „0“ sind. Des Weiteren soll das gleiche Zählen auf die lila gefärbten Zellen angewendet werden.
Folgendes habe ich mir bereits gedacht, funktioniert aber nicht – ist irgendwie eine Endlosschleife, glaub ich zumindest. (siehe unten)
Vielleicht kann mir ja jemand weiter helfen oder hat sogar einen noch einfacheren Weg das Problem zu lösen.
Gruß
Andreas
' Klicken des Starten-Buttons

Private Sub CommandButton1_Click()
Dim DateiName As Variant
Dim Datei As String
Dim c As Integer
Dim ausgabebox As Variant
' Datei, die zum Zählen benötigt wird
DateiName = Application.GetOpenFilename("Microsoft Excel-Tabelle (*.xls), *.xls", , "Bitte  _
wählen Sie die Datei aus!")
If DateiName  False Then
Workbooks.Open DateiName
Datei = ActiveWorkbook.Name
End If
On Error Resume Next
c = 0
For b = 1 To Sheets.Count
For s = 1 To Columns.Count
For z = 1 To Rows.Count
If Workbooks(Datei).Sheets(b).Cells(z, s).Interior.ColorIndex = 2 _
And Workbooks(Datei).Sheets(b).Cells(z, s).Value = 2 Then c = c + 1
Next
Next
Next
ausgabebox = MsgBox(c, vbOKOnly, Ausgabe)
' Schließen des Auswahlfensters
End
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: farbliche Zellen sollen gezählt werden
22.10.2008 15:58:00
Chris
Servus,
als Ansatz, hier mal nur die Zellen, die Zahlen größer 0 sind und deren Zellfarbe = Standard ist und für eine Tabelle
Option Explicit

Sub Zaehlen()
Dim rZelle As Range, rBereich As Range
Dim LetzteSpalte As Long, LetzteZeile As Long, lngCounter As Long
On Error Resume Next
LetzteSpalte = Cells.Find(what:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious). _
Column
LetzteZeile = Cells.Find(what:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
If Not LetzteSpalte = 0 And Not LetzteZeile = 0 Then
Set rBereich = Range(Cells(1, 1), Cells(LetzteZeile, LetzteSpalte))
For Each rZelle In rBereich
If IsNumeric(rZelle.Value) And rZelle.Value > 0 And rZelle.Interior.ColorIndex = xlNone  _
Then
lngCounter = lngCounter + 1
End If
Next rZelle
End If
MsgBox lngCounter
End Sub


Gruß
Chris

Anzeige
AW: farbliche Zellen sollen gezählt werden
22.10.2008 16:00:19
rofu
Hallo,
sieh dir mal di Dimensionierung vonder Vaqriablen z an, könnte der Fehler sein
LG
rofu
AW: nicht nur z bei s auch...
22.10.2008 16:09:00
Chris
... sind zwar nur 256 statt 65536, aber muss ja auch nicht sein, wenn nichts drin steht.
Gruß
Chris
AW: farbliche Zellen sollen gezählt werden
22.10.2008 16:17:00
David
Hallo Andreas,
prinzipiell sollte das so z. Bsp. funzen:

Option Explicit
Sub Farben_zählen()
Dim Cell, Suchbereich As Range
Dim Count_White, Count_Purple As Double
Count_White = 0
Count_Purple = 0
Set Suchbereich = Range("A1:B10")
For Each Cell In Suchbereich
If IsNumeric(Cell) And Cell  0 Then
Select Case Cell.Interior.ColorIndex
Case 2 'weiß
Count_White = Count_White + 1
Case 13 'violett
Count_Purple = Count_Purple + 1
End Select
End If
Next
MsgBox "weiße Zellen: " & Count_White
MsgBox "lila Zellen: " & Count_Purple
End Sub


Ich hab jetzt mal dein "Drumherum" weggelassen.
Falls ich die richtigen Farbcodes nicht getroffen habe, musst du die ggf. ändern. Rausbekommen kannst du die am schnellsten im Direktfenster mit dem Befehl:
msgbox Range("A2").Interior.ColorIndex
Rückmeldung wäre nett.
Gruß
David

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige