Office-Fragen.de

Normale Version: WorksheetFunction.NetworkDays_Intl
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo in die Runde,
ich möchte in VBA zwischen 2 Datumsangaben die Nettoarbeitstage abzüglich Feiertage berechnen. Das funtioniert einwandfrei, bis auf die Feiertage. Ich kann eine einzelne Zelle mit einem Feiertag angeben, aber keinen Bereich. Hier brauche ich eure Hilfe...

 'Tage berechnen
LetzteZeile = ThisWorkbook.Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To LetzteZeile
Worksheets(2).Cells(i, 9).Value = WorksheetFunction.NetworkDays_Intl(Cells(i, 6), Cells(i, 7), 1, Cells(2, 15))
Next i

Die Angabe Cells(2, 15) ist der eine Feiertag. Wie gebe ich einen Bereich an (z.B. Cells(2, 15) bis Cells(20, 15))? Am Besten ein Bereich auf einem anderen Tabellenblatt.

Gruß
hewile
Moin!
Eine oder mehrere Zellen sind ein Range().
Beachte auch, dass immer korrekt referenziert werden sollte!
Cells(i, 6) bezieht sich immer auf das ActiveSheet.
Code:
Dim i&
LetzteZeile = ThisWorkbook.Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To LetzteZeile
  With Worksheets(2)
   .Cells(i, 9).Value = _
    WorksheetFunction.NetworkDays_Intl(.Cells(i, 6), .Cells(i, 7), 1, Worksheets("Feiertage").Range("O2:O15"))
  End With
Next i

Gruß Ralf
Perfekt, Danke!!

Viele Grüße
hewile
Hallo Ralf,
aus Geschwindigkeitsgründen soll die Berechnung der Nettorbeitstage in einem Array erfolgen. Die Feiertage sind im Array arrFT hinterlegt. Ich habe jetzt keinen Schimmer, wie ich den zu durchsuchenden Bereich in der Funktion angeben kann (die Fragezeichen müssen durch die Bereichsangabe ersetzt werden, auskommentiert die ursprüngliche Bereichsangabe).


[Bild: Code.png]



Gruß
hewile