Microsoft 365 Différence en jours

Marvin57

XLDnaute Occasionnel
Bonjour tout le monde,

j'ai un UserForm qui a trois Textbox.

Textbox1 dans lequel je rentre une date
Textbox2 dans lequel je rentre une date

Textbox3 qui devrait si possible me donner la différence entre ces deux dates , en jours.

Pourriez vous me guider sur cette demande S'il vous plaît.

Je vous remercie d'avance.

Marvin57
 
Solution
Bonjour le Fil
ou peut être
VB:
TextBox3=Datediff("d", CDate(TextBox1.value"), CDate(TextBox2.value"))+1
si l'on veut que du 1/1/2024 au 1/1/2024 ca donne 1 jour Lol
reste a voir pour les demi journée Lol
Bonne fin de Journée
Jean marie

Dranreb

XLDnaute Barbatruc
Qu'est-ce qui vous bloque au juste ?
Sélectionnez le nom du contrôle dans la liste de gauche qui surmonte la fenêtre de code et choisissez dans celle de droite l'évènement que vous voulez prendre en charge, Enter, Change ou Exit, et mettez le code dans le modèle de Sub généré.
 

Marvin57

XLDnaute Occasionnel
Qu'est-ce qui vous bloque au juste ?
Sélectionnez le nom du contrôle dans la liste de gauche qui surmonte la fenêtre de code et choisissez dans celle de droite l'évènement que vous voulez prendre en charge, Enter, Change ou Exit, et mettez le code dans le modèle de Sub généré.
VB:
 Private Sub TextBox3_Change()
 TextBox3.Text = CDate(Me.TextBox2.Value) - CDate(Me.TextBox1.Value)
 End Sub

J'ai placé le code de cette façon, mais il ne se passe rien
 

Marvin57

XLDnaute Occasionnel
Ben, non, évidemment, ça ne sert à rien ! C'est lors d'un changement d'une des deux autres TextBox qu'il faut le faire. Ajouter des tests au cas où l'une ou l'autre serait encore vide.
Re,

c'est lundi je devrai être plus en forme que ça !:confused:

C'est bon je l'ai placé de cette façon dans l'autre textbox évènement et oui cela fonctionne.

Merci à vous et surtout pour votre patience.

Marvin57
 

Marvin57

XLDnaute Occasionnel
Vous devriez donner des noms mnémoniques à vos contrôles TBxDateDéb, TBxDateFin, TBxNbJrsDif par exemple.
Re Dranreb,

j'étais trop rapide !

j'ai un soucis, car avec ce code il ne me donne pas le bon compte.

Par ex. Si je donne la date d'aujourd'hui ( 15/01/2024) dans le textbox1 et la date de mercredi (17/01/2024) dans le textbox2, il me donne dans le textbox3 un 2 alors qu'il devrait donner un 3, comme cela fait trois jours.

Peut-on remédier à cela ?
 

patricktoulon

XLDnaute Barbatruc
re
Par ex. Si je donne la date d'aujourd'hui ( 15/01/2024) dans le textbox1 et la date de mercredi (17/01/2024) dans le textbox2, il me donne dans le textbox3 un 2 alors qu'il devrait donner un 3, comme cela fait trois jours.
Bonjour @Marvin57
faux car les donnée sont imcomplètes
une date c'est un jour , un mois , une année
mais en aucun cas une date dit a quel moment on est dans la journée de la date
donc vba considère la journée revolu par defaut
17/01/2024 -15/01/2024 pour vba c'est egal à
(15/01/2024 23:59:59 , 9999999....) -(17/01/2024 23:59:59 , 999999.....) à une nano seconde près
on a donc bien 2 jours révolus de différence à une nano seconde près
démonstration

VB:
Sub test()
d1 = CDate("15/01/2024 ") - TimeValue("23:59:59") 'on enlève les 24 heures de la journée
d2 = CDate("17/01/2024") + TimeValue("23:59:59") 'on ajoute les 24 heurs de la journée

MsgBox DateDiff("d", d1, d2)


End Sub
 

Marvin57

XLDnaute Occasionnel
re

Bonjour @Marvin57
faux car les donnée sont imcomplètes
une date c'est un jour , un mois , une année
mais en aucun cas une date dit a quel moment on est dans la journée de la date
donc vba considère la journée revolu par defaut
17/01/2024 -15/01/2024 pour vba c'est egal à
(15/01/2024 23:59:59 , 9999999....) -(17/01/2024 23:59:59 , 999999.....) à une nano seconde près
on a donc bien 2 jours révolus de différence à une nano seconde près
démonstration

VB:
Sub test()
d1 = CDate("15/01/2024 ") - TimeValue("23:59:59") 'on enlève les 24 heures de la journée
d2 = CDate("17/01/2024") + TimeValue("23:59:59") 'on ajoute les 24 heurs de la journée

MsgBox DateDiff("d", d1, d2)


End Sub
Bonjour Patricktoulon,
Re Dranreb,

alors je dois changer quoi exactement dans le code S'il vous plaît ?
 

Discussions similaires

Réponses
15
Affichages
513
Réponses
4
Affichages
216
Réponses
2
Affichages
221
  • Résolu(e)
Microsoft 365 Formule SI
Réponses
8
Affichages
277
Réponses
11
Affichages
274
Réponses
2
Affichages
226
  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
528
Réponses
11
Affichages
333

Statistiques des forums

Discussions
313 198
Messages
2 096 141
Membres
106 505
dernier inscrit
ngomez