Programme avec l'objet date

newgame Messages postés 52 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 24 juillet 2013 - 26 mai 2009 à 09:11
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 - 26 mai 2009 à 20:17
bonjour
salut on m'a donné de réaliser un pgm qui calcule le nbr de jour
ouvrable on vous donne la date début puis la date fin et puis vous
donnez le nbr de jour entre les deux dates sans samedi et dimanche

Le plus simple à programmer, ce serait de faire une boucle qui parcourt
tous les jours du début à la fin, et qui incrémente un compteur quand
le jour n'est ni un samedi ni un dimanche.

voici mon pgm





Private Sub Command1_Click()

Dim date1 As Date

Dim date2 As Date

Dim i As Date

Dim c As Long

date1 = CDate(Text1.Text)

date2 = CDate(Text2.Text)

If date1 < date2 Then

MsgBox "la date de début est supérieur à la date de fin"

Else

c = 0

For i = date1 To date2

If (Weekday(i) <> 7) And (Weekday(i) <> 6) Then

c = c + 1

End If

Next

Text3.Text = c

End If

End Sub


le pbm c'est qu'il m'affche 0 comme résultat
j'attends vos réponses

4 réponses

jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
26 mai 2009 à 10:06
Bonjour,

1) Date n'est pas un objet !!! (ton titre), mais une fonction
2) ta boucle ===>> i ne peut être une date (il te faut calculer avec I en long et non en date)

Exemple :



Dim date1 As Date
Dim date2 As Date
Dim i As Long
Dim c As Long
date1 = CDate("01/01/2001")
date2 = CDate("01/01/2000")
If date1 < date2 Then
   MsgBox "la date de début est supérieur à la date de fin"
Else
   c = 0
   For i = 0 To date1 - date2
      If (WeekDay(date2 + i) <> 7) And (WeekDay(date2 + i) <> 6) Then
         c = c + 1
      End If
   Next
   MsgBox c
End If




 
0
newgame Messages postés 52 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 24 juillet 2013
26 mai 2009 à 19:14
re,
ça marche pas ton truc ça m'affiche toujours  0 comme résultat
0
newgame Messages postés 52 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 24 juillet 2013
26 mai 2009 à 19:19
re,
 pour date1-date2 on ne peut pas faire directement il ya une fct predéfini datediff qui fait le calcule
mais je ne sais pas coment l'utiliser
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
26 mai 2009 à 20:17
"pour date1-date2 on ne peut pas faire directement "



Ah bon !

Tu es certain de développer sous VB6, toi ?


date1 = CDate("01/01/2001")
date2 = CDate("01/01/2000")



MsgBox date1 - date2


Chez moi, çà marche

Pour ton info : les opérations sur les dates peuivent se fairte directement sous VB, lorsque l'on calcule des jours ...
Tu as surement mal recopié le code ...!
0
Rejoignez-nous