Additionner une date à X jours

Bonjour a tous, je n'ai pas vraiment un probleme car j'ai reussi a le contourner et ca me convient tres bien mais je 'narrive pas a comprendre pour autant :

J'ai dans B1 derniere date

J'ai dans B2 x en chiffres

Pourquoi quand j'ecris :

Private Sub CommandButton1_Click()

MBox1.Value = Feuil5.Range("B2").Value

Mbox11.Value = Feuil5.Range("B1").Value

MBox111.Value = Mbox11.Value + Feuil5.Range("B2").Value

End Sub

Ce ne me donne pas dans la Mbox111 la meme valeur que lorsque j'ecris cela :

Private Sub CommandButton1_Click()

MBox1.Value = Feuil5.Range("B2").Value

Mbox11.Value = Feuil5.Range("B1").Value

MBox111.Value = Mbox11.Value + Mbox1.Value

End Sub

Dans le premier cas je vais bien avoir ma date + x

Dans mon deuxieme cas je vais avoir Mbox11.Value&Mbox1.Value

en gros si MBox11 = 5 et Mbox1 = 25/08/2017

J'aurais en Mbox111 => 525/08/2017

Quelqu'un pourrait m'expliquer, svp ?

Bonsoir,

comme leur nom l'indique, les TextBox sont des objets avec du texte...

donc du texte avec du texte c'est de la concaténation, c'est à dire "mettre bout à bout".

Dans le premier cas vous faites une addition entre du texte et du numérique et là VBA trouve une "incohérence" alors il évalue le texte de la textbox11 identifie que c'est une date à laquelle on ajoute 5 et renvoie la date + 5 jours...

Enfin c'est mon point de vu...

@ bientôt

LouReeD

Une logique qui tient plutot la route

Et donc comment je pourrais faire que cela marche correctement si je ne voulais passer que par les textbox's ?

Feuil5.Range("B2").Value + Feuil5.Range("B1").Value

En fait sur une feuille Excel, les dates sont automatiquement mis en format "compréhensible" par les humains.

mais pour lui cela reste le nombre de jour qui s'épare cette date du 01/01/1900 soit pour le 25/08/2017 42972.

donc 42972 + 5 = 42977 = 30/08/2017.

@ bientôt

LouReeD

Oui bien sur ca c'est la solution que j'ai reussi a faire pour détourné mais du coup si je souhaitais garder les box ? j'aurais fais comment ?

format(textebox1,"00000")+format(textebox2,"00000")

mais ce n'est pas beau, il doit y avoir mieux...

Principe : avec format on met la date en format "chiffre" puis on additionne...

@ bientôt

LouReeD

Bonjour

donne au moins un modèle de ton fichier

A+

Maurice

Bonjour,

à tester

MBox111.Value = format(cdate(Mbox11.Value) + clng(MBox1.Value),"dd/mm/yyyy")

eric

Et voilà

10essai.xlsm (18.68 Ko)

Bonjour

je pense a un truc comme ça

A+

Maurice

MBox1.Value = DateSerial(Year(Feuil1.Range("B1").Value), Month(Feuil1.Range("B1").Value), Day(B1) + Feuil1.Range("B2").Value)

oui mais si je souhaite ajouter 90 jours les mois ne vont pas être croissant...

Erreur d'exécution 13 imcompatibilité de type...

A part que tes Mbox1 et Mbox11 étaient inversées (je n'avais pas ton fichier, pas d'erreur chez moi avec :

Private Sub CommandButton1_Click()
    Mbox11.Value = Range("B2").Value
    MBox1.Value = Range("B1").Value
    MBox111.Value = Format(CDate(MBox1.Value) + CLng(Mbox11.Value), "dd/mm/yyyy")
End Sub

eric

HEyyyy super ca marche du coup je vais essayer de décoder car je comprends pas ton code mais ça marche merci beaucoup

Rechercher des sujets similaires à "additionner date jours"