Hallo Eiscreme! ;)
Wenn Du den Screenshot aus #3 in Deine Threaderöffnung gesetzt hättest, wäre meine Antwort folgende gewesen:
1. Warum VBA? Schließlich gibt es dafür die Funktion =ZÄHLENWENN() (die Günther Dir ja auch in den Code gepackt hat).
2. Wenn es unbedingt VBA sein soll, sollte man sie auch im Code anwenden, insofern volle Zustimmung an Günther.
3. Wenn Du das Rad aber unbedingt (
zu Übungszwecken) neu erfunden haben willst, kann man sie auch per Code abbilden. Dann aber nicht als Sub, sondern als UDF (User defined function), die wie eine normale Funktion im Tabellenblatt angewendet wird, aber natürlich auch per Sub berechnet werden kann.
Zunächst die UDF:
Function CountIfRPP(rng As Range, vSearch As Variant) As Long
Dim rZelle As Range
For Each rZelle In rng
If rZelle = vSearch Then CountIfRPP = CountIfRPP + 1
Next
End Function
Ergibt:
| A | B |
1 | 9 | 0 |
2 | 11 | 5 |
3 | 9 | |
4 | 9 | |
5 | 19 | |
6 | 29 | |
7 | 9 | |
8 | 39 | |
9 | 9 | |
Formeln der Tabelle |
Zelle | Formel | B1 | =CountIfRPP(A1:A9;"a") | B2 | =CountIfRPP(A1:A9;9) |
|
Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8 Wie ich oben schon schrieb, kann man die UDF auch per Sub rechnen lassen.
Dazu müssen die Argumente der Funktion in der Sub übergeben werden:
Sub AufrufUDF()
MsgBox CountIfRPP(Tabelle1.Range("A1:A9"), 9)
End Sub
(gibt eine MsgBox mit dem Ergebnis 5 aus)
Gruß Ralf