Calcul le nombre de jour dans un userform

Le
Fredo(67)
Bonjour,
j'ai créé un userform
celui ci contient 3 textbox
Textbox1 : date de départ
Textbox2 : date de retour
Textbox3 : différence entre les 2 dates

J'ai mis ceci comme code des textbox 1 et 2

Private Sub TextBox1_Change()
TextBox3.Value = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub

et

Private Sub TextBox2_Change()
TextBox3.Value = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub

Cela marche quand j'utilise des nombre, mais pas avec les dates.

Comment faire ?

merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #16539121
Remplace


TextBox3.Value = Val(TextBox1.Value) - Val(TextBox2.Value)

Par

TextBox3.Value = Cdate(TextBox1.Value) - Cdate(TextBox2.Value)

Évidemment, je prends pour acquis que tu as vraiment dans les
textbox1 et 2 des entrées reconnues comme des formats de date
acceptable par excel.

Sinon, tu peux toujours tester :
if isdate(textbox1.value) and isdate(Textbox2.value) then
TextBox3.Value = Cdate(TextBox1.Value) - Cdate(TextBox2.Value)
Else
Msgbox "problème avec le contenu des textbox... pas des dates"
End if





"Fredo(67)"
Bonjour,
j'ai créé un userform
celui ci contient 3 textbox
Textbox1 : date de départ
Textbox2 : date de retour
Textbox3 : différence entre les 2 dates

J'ai mis ceci comme code des textbox 1 et 2

Private Sub TextBox1_Change()
TextBox3.Value = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub

et

Private Sub TextBox2_Change()
TextBox3.Value = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub

Cela marche quand j'utilise des nombre, mais pas avec les dates.

Comment faire ?

merci
lSteph
Le #16539111
Bonjour,

Choisir celle qui te convient (date saisie au format dd/mm/yyyy)

'durée en jours:
Private Sub TextBox2_AfterUpdate()
TextBox3 = DateValue(TextBox2) - DateValue(TextBox1) + 1
End Sub

'différence en jour
Private Sub TextBox2_AfterUpdate()
TextBox3 = DateValue(TextBox2) - DateValue(TextBox1)
End Sub


'lSteph

On 13 août, 16:03, "Fredo(67)"
Bonjour,
j'ai créé un userform
celui ci contient 3 textbox
Textbox1 : date de départ
Textbox2 : date de retour
Textbox3 : différence entre les 2 dates

J'ai mis ceci comme code des textbox 1 et 2

Private Sub TextBox1_Change()
TextBox3.Value = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub

et

Private Sub TextBox2_Change()
TextBox3.Value = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub

Cela marche quand j'utilise des nombre, mais pas avec les dates.

Comment faire ?

merci


Fredo(67)
Le #16539321
Merci à vous deux

J'ai mis en place la solution de ISteph, et cela fonctionne

je testerai plus tard la solution de Michdenis

Encore merci,

je peux maintenant me pencher sur la suite de ma macro
lSteph
Le #16539311
..pour calculer en jours une durée (mettre le +1) ou différence (ne
pas le mettre) ,
je prends plutôt la date la plus récente de laquelle
j'enlève la plus ancienne ce qui me donnera positivement le résultat
cela fait 6 jours par exemple
et non pas cela fait moins 6jours
Voici rectifié pour les cas d'erreur de saisie date:

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
On Error GoTo fin
TextBox1 = Format(CDate(TextBox1), "dd/mm/yyyy")
Exit Sub
fin:
On Error GoTo 0
Cancel = True
TextBox1.SetFocus: MsgBox "une date"
End Sub



Private Sub TextBox2_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
On Error GoTo fin
TextBox2 = Format(CDate(TextBox2), "dd/mm/yyyy")
Exit Sub
fin:
On Error GoTo 0
Cancel = True
TextBox2.SetFocus: MsgBox "une date"
End Sub


Private Sub TextBox2_AfterUpdate()
TextBox3 = DateValue(TextBox2) - DateValue(TextBox1) + 1
End Sub

'lSteph


On 13 août, 16:03, "Fredo(67)"
Bonjour,
j'ai créé un userform
celui ci contient 3 textbox
Textbox1 : date de départ
Textbox2 : date de retour
Textbox3 : différence entre les 2 dates

J'ai mis ceci comme code des textbox 1 et 2

Private Sub TextBox1_Change()
TextBox3.Value = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub

et

Private Sub TextBox2_Change()
TextBox3.Value = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub

Cela marche quand j'utilise des nombre, mais pas avec les dates.

Comment faire ?

merci


LE TROLL
Le #16540521
Bonjour,

Et en Passant par l'intermédiaire de variable date, schématiquement :

dim debut as date
dim fin as date
dim diff as long
debut=text1
fin=text2
diff = fin - debut
text3=diff

Normalement on n'utilise pas directement les objets pour calculer, car selon
les objets ce ne serait pas pareil (un labelBox par exemple)...

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Fredo(67)"
Bonjour,
j'ai créé un userform
celui ci contient 3 textbox
Textbox1 : date de départ
Textbox2 : date de retour
Textbox3 : différence entre les 2 dates

J'ai mis ceci comme code des textbox 1 et 2

Private Sub TextBox1_Change()
TextBox3.Value = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub

et

Private Sub TextBox2_Change()
TextBox3.Value = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub

Cela marche quand j'utilise des nombre, mais pas avec les dates.

Comment faire ?

merci
Publicité
Poster une réponse
Anonyme