Calculer le delai et changer le fond d'un label [Résolu]

Signaler
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Private Sub Delai()
Dim pin As Integer

Dim firstDate, msg As String
Dim secondDate As Date
firstDate = InputBox("Enter a date")
secondDate = CDate(firstDate)
pin = Abs(DateDiff("d", Now, secondDate))
MsgBox "Days from today: " & pin, vbOKOnly, "Infos"

End Sub

Private Sub cmdcolor_Click()
Call Delai
If (pin = 10) Then
Label1.BackColor = vbYellow
ElseIf (pin < 10) Then
Label1.BackColor = vbGreen
ElseIf (pin > 10) Then
Label1.BackColor = vbRed
End If
End Sub
Celà n'affiche toujours que le vert

7 réponses

Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut

apprends à te servir du debugger
mets un point d'arret à la ligne
If (pin = 10) Then 

lance ton prog et ensuite arrivé au point d'arret
verifie la valeur de pin (avec l'espion ou add watch)
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Et il est également certain que tu ne travailles pas en Option Explicit (ouvre ton aide en ligne sur ce mot), car sinon, pin aurait été dénoncée dans la procédure click !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
bon maintenant si dans ma table j'ai un enregistrement dont le champ datle=29/05/2013
devrait écrire dan l code
firstdate=Rs.fields["date"]?
Sachant que RS est mon recordset

Pas bonjour non plus,

Je ne comprends pas, ça fait au moins 5 fois que tu poses la même question, dont deux ou trois où tu as noté plusieurs réponses acceptées.

Tiens... en épluchant tes messages postés, j'en vois un clos par un administrateur, et un autre carrément supprimé, bizarre...

- Pas de bonjour ni merci
- Le code que tu postes sur le forum toujours indenté avec le balises de code VB prévues à cet effet.
- Dans ton titre tu nous parles de changer le fond d'un label, maintenant tu nous parles d'un recordset et d'une base de données...
- La rigueur de ton écriture me fait comprendre la qualité de ton code, qui (le code) lui, n'admet aucune faute ni accentuation mal placée. (datle <> date par exemple)

Et visiblement tu n'as toujours pas lu le règlement, donc tu comprendras pourquoi personnellement, moi, j'en resterais la?

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
tes remarques sont pertinantes mais remarque que c'est"calculer le délai et changer le fond d'un label"
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Bonjour,
Il est visible que la variable pin, qui n'est déclarée et initialisée que dans la procédure delai, a pour valeur 0 dans mla procédure évènementielle cmdcolor_Click ===>> et donc : = vert.
Ceci relève des connaissances les plus élémentaires, apparemment non encore acquises, sur la portée des variables.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
J'ajoute enfin que l'utilisation (comme tu l'as fait) de la valeur absolue de ta différence de dates, va à coup sûr te jouer un mauvais tour évident (quand par exemple la différence sera de plus de 10 jours en négatif) !
Et tu n'as tenu par ailleurs aucun compte de ce que je t'ai dit dans une autre discussion en ce qui concerne le calcul de la différence en jours sous VB6 (bien plus simple).
Voilà.



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.