Userform - Calcul automatique de date

wizard0147

XLDnaute Occasionnel
Bonjour à tous,

J'ai créé un document Word avec Userform mais une partie du code me pose problème.

Le userform se lance à l'ouverture du document. On renseigne la date de production d'un produit ainsi que la durée de vie (Shelf life dans le doc).
En cliquant sur OK, la date de production et la DLUO (qui correspond à la date de production + durée de vie) sont insérées sur leurs signets.
Malheureusement, je n'arrive pas à coder la partie VBA qui correspond date de production + shelf life.

Je vous ai mis un exemple en pièce jointe.

J'espère avoir été clair.

Merci d'avance pour votre aide
 

Pièces jointes

  • Date de production.doc
    37.5 KB · Affichages: 169

Modeste

XLDnaute Barbatruc
Re : Userform - Calcul automatique de date

Bonjour wizard0147,

Tu sais sans doute que ce que tu encodes dans un TextBox est .. du texte ;) Partant de là, ajoute (avant le test de ton OptionButton1) un petit
VB:
Dt = CDate(TextBox1)
Dt sera donc une variable qui contiendra le contenu de ton TextBox, sous forme de vraie date. Attention, cette instruction provoquera une erreur, si ce qui est saisi dans la zone de texte n'est pas une date!


Une fois cette manipulation réalisée, le calcul de l'échéance à un an pourrait se faire en ajoutant 365, mais si tu as besoin de calculer une date précise, même les années bisextiles, tu peux écrire:
VB:
DLUORange.Text = DateSerial(Year(Dt) + 1, Month(Dt), Day(Dt))
Je te laisse trouver le mode de calcul pour l'échéance à deux ans :)

Tu nous diras si ça fonctionne comme tu veux?
 

mromain

XLDnaute Barbatruc
Re : Userform - Calcul automatique de date

Bonsoir wizard0147, Modeste :)

Une autre solution est d'utiliser la fonction Ce lien n'existe plus qui permet d'ajouter à une date des secondes, minutes, heures, jours, semaines, mois, trimestres et années.


A+
 
Dernière édition:

mromain

XLDnaute Barbatruc
Re : Userform - Calcul automatique de date

Coucou Modeste :)

Le lien d'aide vient effectivement du F1 d'un office 2013.
Par contre, je crois que DateAdd est intrinsèque à Ce lien n'existe plus. Sa notation complète est VBA.DateTime.DateAdd.
DateTime contient plein de fonctions de manipulation de dates qui sont très pratiques.

Bonne soirée :eek:

A+
 

Discussions similaires

Réponses
14
Affichages
583

Statistiques des forums

Discussions
312 472
Messages
2 088 709
Membres
103 928
dernier inscrit
MIKETUAU