Elegenate Lösung als Schleife
03.02.2021 12:35:38
Sahin
ich bin kein ausgebildeter Programmierer und programmiere im VBA einfach durchs probieren. Am Ende klappt es immer irgentwie. Nun komme ich nicht weiter:
Folgendes möchte ich elegante als eine schleife haben. Es sollen insgesamt die Variable Stundentag1 bis Stundentag365 zusammenaddiert werden. Ich möchte aber keine 365 Zeilen mit Stundentag haben und dann bei Summetag = Stundentag1 + Stundentag2 bis Stundentag 365.
Sub Stundenzahler()
Dim Stundentag1 As Double
Stundentag1 = Application.WorksheetFunction.CountIf(Range("Tagday" & 1), "=M1") / 2
Stundentag2 = Application.WorksheetFunction.CountIf(Range("Tagday" & 2), "=M1") / 2
Stundentag3 = Application.WorksheetFunction.CountIf(Range("Tagday" & 3), "=M1") / 2
Stundentag4 = Application.WorksheetFunction.CountIf(Range("Tagday" & 4), "=M1") / 2
summetag = Stundentag1 + Stundentag2 + Stundentag3 + Stundentag4
MsgBox summetag
End Sub
Wenn ich das per Hand eingebe, wird alle richtig zusammengerechnet. Ich möchte aber nicht die Liste bis 365 fortführen
Das geht garantiert eleganter.
Folgender Ansatz von mir ist leider gescheitert:
Sub Stundenzahler2()
Dim Stundentag(1 To 3) As Double
For i = 1 To 365
Stundentag(i) = Application.WorksheetFunction.CountIf(Range("Tagday" & i), "=M1") / 2
summetag = Application.WorksheetFunction.CountIf(Stundentag(1 to 365))
Next i
MsgBox summetag
End Sub