Comment afficher un résultat dans un textbox

Résolu/Fermé
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 - 7 sept. 2016 à 11:27
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 - 8 sept. 2016 à 09:50
Bonjour,

suis débutant sur vab, et je me creuse la tête pour afficher un résultat dans un textbox,
je souhaiterais faire un calcul avec une date et en mettant le nombre de jours que cela affiche le résultat dans un textbox, et je n'y arrive pas...
sur textbox1 s'affiche ceci par se code

Private Sub UserForm_Initialize()
' Affiche la date et heure du jour
' sous le format ex: mercredi 10 juin 2016 10:25:36
TextBox1.Value = Format(Now, "dddddd hh:mm:ss")
End Sub

j'ai un textbox7 sur lequel quand on lance le userform, on tape une valeur type 20 ou 8 ect...

et je voudrais que s'affiche le résultat du calcul dans un textbox6 par exemple...

faire que le contenu du textbox1 + textbox7 = textbox6

j'ai utiliser ceci :
Private Sub Textbox6.Value()
dim oldate
dim cdate
oldDate = Cdate(textbox1.value)
textbox3.value = DateAdd( "d", TextBox6.value, oldDate )
End Sub

cela fonctionne pas, je dois faire fausse route qui serais me rendre service.....
sur le web je comprend pas les lignes de code, ne soyez pas trop vague dans vos propositions merci
A voir également:

2 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié par cs_Le Pivert le 7/09/2016 à 15:32
Bonjour,

jordans45 t'a donné la solution ici:

https://forums.commentcamarche.net/forum/affich-33882090-calcul-avec-textbox-date-saisi-numerique#1

dans la TextBox1 la date, dans la 2 le nombre de jours à ajouter et dans la 3 le résultat

Option Explicit
Dim oldDate As Date
Dim madate As Date
Private Sub TextBox2_Change() '
oldDate = CDate(TextBox1.Value)
madate = DateAdd("d", TextBox2.Value, oldDate)
TextBox3.Value = Format(madate, "d mmmm yyyy hh:mm:ss")
End Sub
Private Sub UserForm_Initialize()
TextBox1.Value = Format(Now, "d mmmm yyyy hh:mm:ss")
End Sub



rectif avec le complément de gbinforme(un petit coucou)

@+ Le Pivert
1
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1
7 sept. 2016 à 15:20
hello, j'ai tester ton code et il fonctionne tu as tout à fait raison, mais si j'oblige le textbox1 à avoir un format bien spécifique cela fait une erreur.

il est sur que si dans

Private Sub UserForm_Initialize()
TextBox1.Value = Now
End Sub

ton code fonctionne, mais comme j'ai noté ceci
TextBox1.Value = Format(Now, "dddd hh:mm:ss")
cela ne fonctionne plus.

gbinforme à la réponse mais je n'arrive pas à l'adapté, me fait des erreurs
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié par cs_Le Pivert le 7/09/2016 à 15:28
c'est fait!!!!!!!!!!!!!!!
les réponses se sont croisées
0
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1
7 sept. 2016 à 15:40
hello, cs_le Pivert,

alors là, bravo ton code marche juste une question pourquoi je peu pas utilisé un format que je veux comme le : "dddddd hh:mm:ss" qui fonctionne pas en l'occurence, mais si j'utilise le tiens "d mmmm yyyy hh:mm:ss" cela fonctionne aurais-tu une explication ?
car je préfère l'affiche comme le vendredi 9 septembre 2016 15:39:52
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
7 sept. 2016 à 15:53
Tu peux le faire sur le résultat, comme ceci:

Option Explicit
Dim oldDate As Date
Dim madate As Date
Private Sub TextBox2_Change() '
oldDate = CDate(TextBox1.Value)
madate = DateAdd("d", TextBox2.Value, oldDate)
TextBox3.Value = Format(madate, "dddd dd mmmm yyyy hh:mm:ss")
End Sub
Private Sub UserForm_Initialize()
TextBox1.Value = Format(Now, "dd mmmm yyyy hh:mm:ss")
End Sub


voilà
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié par cs_Le Pivert le 7/09/2016 à 16:24
on peut tricher aussi comme cela:

Option Explicit
Dim oldDate As Date
Dim madate As Date
Private Sub TextBox2_Change()
TextBox1.Value = Format(Now, "dd mmmm yyyy hh:mm:ss")'on change le format
oldDate = CDate(TextBox1.Value)
madate = DateAdd("d", TextBox2.Value, oldDate)
TextBox3.Value = Format(madate, "dddd dd mmmm yyyy hh:mm:ss")
TextBox1.Value = Format(Now, "dddd dd mmmm yyyy hh:mm:ss") 'on remet le format original
End Sub
Private Sub UserForm_Initialize()
TextBox1.Value = Format(Now, "dddd dd mmmm yyyy hh:mm:ss")
End Sub


Tout cela c'est du bidouillage!
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
7 sept. 2016 à 14:59
Bonjour,

Pour ton premier code c'est ceci :
TextBox1.Value = Format(Now, "dddd hh:mm:ss")


mais ensuite cette valeur, à partir du moment où tu as mis le jour en clair, ta textbox.value n'est plus utilisable comme une date.
tu devrais déclarer une variable en tête de ton comme userform
Dim madate As Date

et utiliser ensuite cette variable
madate = DateAdd("d", TextBox6.Value, Now)
TextBox3.Value = madate 
avec un format éventuel.
0
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1
7 sept. 2016 à 15:29
hello, gbinforme

je suis d'accord sur ton analyse, m'étant trompé sur le titre de la textbox3 que je n'ai pas, étant donné que j'utilise le textbox1.value avec le format (now, "ddd hh:mm:ss") que le textbox 7 c'est la variable que je change et le textbox 6 le résultat, je trouve pas le lien avec le textbox3.value=madate
0