Comment afficher un résultat dans un textbox

Résolu
coupidon Messages postés 98 Statut Membre -  
coupidon Messages postés 98 Statut Membre -
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

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. coupidon Messages postés 98 Statut Membre 1
       
      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
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      c'est fait!!!!!!!!!!!!!!!
      les réponses se sont croisées
      0
    3. coupidon Messages postés 98 Statut Membre 1
       
      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
    4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
    5. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
    1. coupidon Messages postés 98 Statut Membre 1
       
      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