Hallo!
Also habe mal den Code erweitert. Auf die Zelleneingabe beziehe ich mich da nicht. Du hast ja 12 folgende Spalten die nur 1 bis 12 darsellen. Wenn man das weiß, kann man da auch gleich eine Schleife von 1 bis 12 nutzen.
HAbe es jetzt so gemacht, dass in Zeile 10 die Arbeitstage und darunter die Zahl mal 8 geschrieben wird. Könnte man auch in eine Zeile packen. So hast du aber die Tage auch noch separat. Zudem gibt es die FUnktin bei meinem Excel noch nicht. Kann deshalb nur grob programmieren ohne zu testen. Schau mal ob es so geht oder alles zusammen in einer Spalte erfasst werden soll?
Eins aber noch. Laut Beschreibung der Funktion berechnet die dir die Arbeitstage vom ersten bis letzten Tag des Monats. Feiertage werde nicht abgezogen. Die kann man als dritten Parameter übergeben. Die müssen aber irgendwo vermerkt sein. Weiß nicht, ob du so was schon hast oder die noch eingetragen werden müssen bzw. du die abgezogen haben willst.
VG
Sub arbeitstage()
Dim wert
Dim i
wert = ActiveSheet.Range("A1")
'Eintrag in A3
For i = 1 To 12
If ActiveSheet.Cells(10, 1 + i) <> "" Then
ActiveSheet.Cells(10, 1 + i) = ""
Else
ActiveSheet.Cells(10, 1 + i).FormulaLocal = "=(NETTOARBEITSTAGE(" & Chr(34) & DateSerial(wert, i, 1) & Chr(34) & ";" & Chr(34) & DateSerial(wert, i + 1, 1) - 1 & Chr(34) & "))"
ActiveSheet.Cells(11, 1 + i) = ActiveSheet.Cells(10, 1 + i) * 8
End If
Next i
End Sub
|