[excel] nbre de jours ouverts (samedi inclus) ds un mois

nbre de jours ouverts (samedi inclus) ds un mois [excel] - VB/VBA/VBS - Programmation

Marsh Posté le 04-05-2004 à 16:28:41    

Bonjour,
 
j'ai besoin de connaitre le nombre de jours ouverts (du lundi au samedi) ds
un mois. J'ai trouvé assez facilement comment calculer le nombre de jours
ouverts (du lundi au vendredi), mais avec le samedi inclu je ne trouve pas
...
 
Qui peut m'aider ? Merci


Message édité par vingtcent le 04-05-2004 à 21:55:51
Reply

Marsh Posté le 04-05-2004 à 16:28:41   

Reply

Marsh Posté le 04-05-2004 à 18:59:03    

C'est quoi le nombre de jours ouverts ? :??:  :??:  

Reply

Marsh Posté le 04-05-2004 à 19:48:40    

le nombre de jour du mois hors dimanche

Reply

Marsh Posté le 04-05-2004 à 20:07:27    

Ok, je vais m'y mettre !
dis moi comment ta fais pour calculer le nombre de jours ouverts du lundi au vendredi (pour aller dans le sens de ton prog)

Reply

Marsh Posté le 04-05-2004 à 21:22:39    

J'ai utilsé la fonction NB.JOURS.OUVRES de la façon suivante :  
 
=NB.JOURS.OUVRES(A3;FIN.MOIS(A3; 0))
 
ou A3 est une celule qui contient le mois concerné

Reply

Marsh Posté le 04-05-2004 à 21:38:56    

Mais ton truc c'est sur excel, fallait le dire tout de suite, je viens de me faire chier a ecrire une fonction avec VB  :fou:  :pt1cable:  
En plus je l'ai testé, elle marche, meme si c'est vrai qu'elle est plutot longue pour si peu, il doit y avoir plus simple.
 
je te la met quand meme tu peut t'en servir dans une macro (peut-être):
 

Code :
  1. Function NombreJourOuvert(LaDate As Date) As Byte
  2. Dim M As Byte
  3. Dim A As Integer
  4. Dim FinMois As Byte
  5. M = Month(LaDate)
  6. A = Year(LaDate)
  7. '##############################################
  8. 'ce qui a entre les "#" c'est que je sais pas trouver de dernier jour du mois + facilement
  9. Dim Bys As Boolean
  10. If Int(A / 4) = A / 4 Then Bys = True
  11. If M = 1 Then FinMois = 31
  12.     If M = 2 Then
  13.         If Bys = True Then
  14.         FinMois = 29
  15.         Else
  16.         FinMois = 28
  17.         End If
  18.     End If
  19. If M = 3 Then FinMois = 31
  20. If M = 4 Then FinMois = 30
  21. If M = 5 Then FinMois = 31
  22. If M = 6 Then FinMois = 30
  23. If M = 7 Then FinMois = 31
  24. If M = 8 Then FinMois = 31
  25. If M = 9 Then FinMois = 30
  26. If M = 10 Then FinMois = 31
  27. If M = 11 Then FinMois = 30
  28. If M = 12 Then FinMois = 31
  29. '############################################
  30. Dim i As Byte
  31. Dim TheDate As Date
  32. For i = 1 To FinMois
  33. TheDate = i & "/" & M & "/" & A
  34.     If WeekDay(TheDate) > 1 Then
  35.     NombreJourOuvert = NombreJourOuvert + 1
  36.     End If
  37. Next
  38. End Function


 
avec cette fonction si tu renvoi a l'argument LaDate la date systeme, il te renverra 26, soit 26 jours ouvrable , j'ai verifié avec le calendrier de windows, c'est ça !
 
Aller, bonne chance !
Salut !

Reply

Marsh Posté le 04-05-2004 à 21:57:38    

prog1001 a écrit :

Mais ton truc c'est sur excel, fallait le dire tout de suite, je viens de me faire chier a ecrire une fonction avec VB  :fou:  :pt1cable:


 
oups sorry
 
La balise [excel] etait restée ds mon clavier ...
 
Merci
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed