• Initiateur de la discussion Initiateur de la discussion Christian T
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

Christian T

Guest
Bonjour le forume,

J'ai déjà posé ma question mais les réponses reçues affirmaient qu'il n'y avait pas de problème. Or le problème persiste, je vais le poser différemment.

Je cherche à calculer le nombre de jours travaillés entre deux dates et j'introduis le nombre de jours fériés par une inpubox.

Voici mon code :
Function NbJoursTravail(Début As Date, Fin As Date)

Dim Vdate As Date
Dim NbJours As Byte
Dim NbJoursWE As Byte
Dim NbJoursFeriés As Byte

NbJours = 0
NbJoursFeriés = 0
NbJoursWE = 0

If Début = 0 Or Fin = 0 Then
NbJoursTravail = 0
Else

NbJoursFeriés = InputBox('Combien de jours feriés dans la période considérée ?', _
'Jours fériés', 0)
For Vdate = Début To Fin
If Weekday(Vdate) = 1 Or Weekday(Vdate) = 7 Then
NbJoursWE = NbJoursWE + 1
End If
Next Vdate
NbJours = Fin - Début + 1
End If

NbJoursTravail = NbJours - NbJoursWE - NbJoursFeriés

End Function

[li]Quand j'insère la première fois[/li] ma fonction la boite de dialogue s'ouvre 5 fois.

Où est l'erreur?

Merci d'avance

Christian
 
Bonjour

je te propose de passer ton nombre de jours dériés direct dans la fonction

Function NbJoursTravail(Début As Date, Fin As Date, NbJoursFeriés As Byte)

Dim Vdate As Date
Dim NbJours As Byte
Dim NbJoursWE As Byte

NbJours = 0
NbJoursWE = 0

If Début = 0 Or Fin = 0 Then
NbJoursTravail = 0
Else

For Vdate = Début To Fin
If Weekday(Vdate) = 1 Or Weekday(Vdate) = 7 Then
NbJoursWE = NbJoursWE + 1
End If
Next Vdate
NbJours = Fin - Début + 1
End If

NbJoursTravail = NbJours - NbJoursWE - NbJoursFeriés

End Function

Sinon autre possibilite le calcul des jours fériés
 
Bonjoour Pascal, Bonjour le forum

Merci Pascal pour ta proposition. Elle est tellement simple que je me demande pourquoi je n'y ai pas pensé. Mais pourquoi faire simple?.

Mais ta réponse ne me satisfait qu'à moitié : j'ai une solution, mais pourquoi mon inputbox ne fonctionne pas?

Cette fonction ne correspond pas à un besoin personnel ou professionnel, je veux simplement apprendre VBA.

Donc, si toi ou un autre peut me dire quelle erreur je commets, je lui en serais reconnaisant.

christian
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
356
Réponses
5
Affichages
905
Réponses
4
Affichages
729
Réponses
2
Affichages
411
Retour