Excel VBA - Funktion mit mehreren Bereichen (ranges)
12.01.2025 20:29:27
menschenschreck
ich habe versucht eine Funktion in Excel zu erstellen, die anhand der Zellfarbe die Anzahl der Urlaubstage ermittelt. Dieses funktioniert auch recht gut, wenn ich die Funktion über eine Sub aufrufe und dabei eine zusammengesetzte Range übergebe. Sobald ich aber im Tabellenblatt die Funktion verwende und mehr als einen Bereich (mit Strg) wähle, läuft die Prozedur auf Fehler (#WERT!).
Mein Code:
Public Function JahUrl(UBereich As Range) As Single
Dim Cell As Range
Dim UFarbe As Single
Dim U2Farbe As Single
Dim UTage As Single
Dim rangetouse As Range
UFarbe = 6
U2Farbe = 36
UTage = 0
Set rangetouse = UBereich
For Each singleArea In rangetouse.Areas
For Each Cell In singleArea
Application.Volatile
ZFarbe = Cell.Interior.ColorIndex
If ZFarbe = UFarbe Then
UTage = UTage + 1
ElseIf ZFarbe = U2Farbe Then
UTage = UTage + 0.5
End If
Next Cell
Next singleArea
JahUrl = UTage
End Function
-------------------------------------------------------------------
Sub test()
MsgBox JahUrl(Range("A3:A33,E3:E33,I3:I33,M3:M33,Q3:Q33,U3:U33,Y3:Y33,AC3:AC33,AG3:AG33,AK3:AK33,AO3:AO33,AS3:AS33")) & " Tag(e) Urlaub"
End Sub
Wäre toll, wenn jemand eine gute Idee für mich hätte.
Anzeige