Dans votre code ÉCRIRE
Dim Holidays As Range
Set Holidays = Worksheets("Holidays").Range("A:A")
If IsEmpty(TextBox1.Value) = True Then
TATtxt.Value = ""
ElseIf IsEmpty(TextBox1.Value) = False And TextBox2.Value <= TextBox1.Value
Then
MsgBox TextBox2.Value & "-"& TextBox1.Value
TATtxt.Value = _
WorksheetFunction.NetworkDays(TextBox2.Value, TextBox1.Value)
End If
Il vous montrer les valeurs des dates dans un msgbox. Ensuite, examinez-les, probablement l'un d'entre eux n'est pas correct.
et enlever la partie Holidays
dans les NETWORKDAYS, selon la documentation, il devrait être: Vacances - une gamme facultative d'une ou plusieurs dates pour exclure du calendrier de travail, tels que les jours fériés de l'Etat fédéral et des vacances flottantes. La liste peut être une plage de cellules contenant les dates ou une constante de tableau des numéros de série représentant les dates.
Documentation:
https://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheetfunction-networkdays-method-excel
En général, procédez comme suit pour voir comment la formule fonctionne. Ouvrez un nouvel Excel. Dans un nouveau module, écrivez ce qui suit:
Option Explicit
Public Sub PrintNetworkDays()
Dim dtStartDate As Date
Dim dtEndDate As Date
Dim rngHolidays As Range
dtStartDate = DateSerial(2017, 7, 1)
dtEndDate = DateSerial(2017, 8, 1)
Set rngHolidays = ActiveSheet.Range("A:A")
rngHolidays(1, 1) = DateSerial(2017, 7, 5)
rngHolidays(2, 1) = DateSerial(2017, 7, 6)
rngHolidays(3, 1) = DateSerial(2017, 7, 7)
rngHolidays(4, 1) = DateSerial(2017, 7, 8)
rngHolidays(5, 1) = DateSerial(2017, 7, 9)
Debug.Print WorksheetFunction.NetworkDays(dtStartDate, dtEndDate, rngHolidays)
End Sub
Exécutez-le. Ensuite, vous verriez les dates, qui sont des vacances, exclues de vos calculs.
merci vityata ... j'ai ajouté le code de msgbox mais les valeurs que j'obtiens sont correctes et j'obtiens toujours l'erreur quand j'exécute le formulaire ... est-ce que je manque quelque chose quand j'utilise la fonction networkdays? – agatha
Pouvez-vous mettre une capture d'écran des valeurs que vous obtenez dans le msgbox, @agatha – Vityata
@agatha - vérifier l'édition. – Vityata