Zellen in Prozedur übergeben

DemandX

Grünschnabel
Hallo,

ich habe folgendes Problem:

Ich soll ein Makro schreiben, dass eine Range einliest und dort hochzählt wie viele Zellen blau, rot und grau sind. Das Problem ist, dass die Anzahl der zu zählenden Zellen nich gleich ist.

So muss ich nun beim Prozeduraufruf die Range (Bsp: I5:K5) übergeben und in der Prozedur mit einer Schleife die Farbwerte hochzählen.

Ich bin ziemlich neu in der VBA-Programmierung und weiß nicht:
- wie ich die Farbwerte der Zellen an die Prozedur übergeben kann
- wie ich die Anzahl der zu zählenden Zellen herausfinde und die Zelle I5 in einer Schleife dann zu J5 hochzählen soll

Ich hoffe ihr könnt mir helfen.
 
Ok ich bin jetzt soweit, dass er zählt und vergleicht.
Jetzt muss ich nur noch die Zelle ("C1") durch eine Variable, die beim Prozeduraufruf in die Klammern geschrieben wird ersetzen. Wie schreibe ich das genau aus?
Kriege da immer fehler.

Oder kann ich den Aufruf so schreiben?
Count ("C1")

und dann in der Prozedur
Sub Count(ausgangszelle)




Sub Count()
'
' Makro1 Makro
'

Dim ZellenInhalt As String
ZellenInhalt = Range("C1").Interior.Color

Dim x As Integer
Dim y As Integer

Dim red As Integer
Dim green As Integer
Dim grey As Integer
Dim blue As Integer


x = 0
y = 7

red = 0

'+++++++++++++++++++-Counter-++++++++++++++++++++++

For x = 1 To y

If Range("C1").Offset(0, x).Interior.Color = 255 Then red = red + 1 _
Else If Range("C1").Offset(0, x).Interior.Color = 65280 Then green = green + 1 _
Else If Range("C1").Offset(0, x).Interior.Pattern = xlChecker Then grey = grey + 1 _
Else If Range("C1").Offset(0, x).Interior.Color = 12611584 Then blue = blue + 1

Next x

Range("A6") = red
Range("A7") = green
Range("A8") = grey
Range("A9") = blue

'+++++++++++++++++++-IF THEN-++++++++++++++++++++++
'Set pattern to "none"
Range("C1").Offset(0, -2).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ColorIndex = xlAutomatic
.TintAndShade = 0
.PatternTintAndShade = 0
End With


If red > 0 Then Range("C1").Offset(0, -2).Interior.Color = 255 _
Else If grey = y Then Range("C1").Offset(0, -2).Interior.Pattern = xlChecker _
Else If green > 0 Then Range("C1").Offset(0, -2).Interior.Color = 65280 _
Else If blue = y Then Range("C1").Offset(0, -2).Interior.Color = 12611584 _
Else Range("C1").Offset(0, -2).Interior.Pattern = xlChecker


Range("O5").Interior.Color = 12611584

'
End Sub
 
Zurück