Calcul de délai à partir d'une date

xavoul -  
m@rina Messages postés 27709 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Dans Word 2010, je voudrait faire un courrier type dans lequel je rentre une date (de préférence par un contrôle de contenu plutôt qu'un champs, mais bon...), et des délais situés plus loin dans le texte se calculent automatiquement. Par exemple je rentre la date 25 mars 2015, et un délai de 4 mois est calculé à partir de cette date un peu plus loin dans le texte. Je voudrais que la date 25 juillet 2015 s'affiche automatiquement (évite de faire des erreurs de saisie).
Pouvez-vous m'aider ? Comment gérer un délai fin de mois à fin de mois qui arriverai fin février. Par exemple : 31/12/2014 + 2 mois, de fin de mois à fin de mois afficherait automatiquement 28 février 2015 (ou 29 février une année bissextile...).

Merci pour votre aide

2 réponses

  1. Nxl Messages postés 1257 Statut Membre 133
     
    salut ! Je ne suis pas un pro d'exel, mais tu as essayer en changeant le format des donnée dans tes cellules (je crois qu'il y a des formats scientifiques, monnaies, et sans doute date du coup !)
    0
    1. xavoul
       
      Je ne suis pas dans le cas d'un publipostage. Je n'ai aucune BDD associée.
      Il s'agit juste d'un document Word dans lequel je remplis une date au début et je voudrait que toutes les autres soient calculées automatiquement
      0
    2. Nxl Messages postés 1257 Statut Membre 133
       
      ah ouais, bah dans ce cas je ne voit pas trop comment faire sans passer par exel dans l'histoire ! Je pense qu'utiliser Exel pour ce genre de chose est plus adapté !
      0
  2. m@rina Messages postés 27709 Date d'inscription   Statut Modérateur Dernière intervention   11 567
     
    Bonjour,

    Je ne crois pas qu'Excel soit l'idéal pour faire son courrier ! :)

    Oui, c'est très possible avec Word à l'aide d'une petite macro qui se délenchera à la sortie du contrôle.

    Exemple :

    Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
    Dim madate
    Set CC = ActiveDocument.ContentControls.Item(1)
    madate = CC.Range
    madate = DateAdd("m", 2, madate)
    MsgBox madate

    End Sub


    J'ai mis la variable madate en message. Après tout dépend de ce que tu veux en faire. Il faudrait l'affecter à un signet pour l'utiliser ailleurs dans le document.

    m@rina

    Je suis Charlie
    0
    1. xavoul
       
      Merci m@rina !
      0
    2. m@rina Messages postés 27709 Date d'inscription   Statut Modérateur Dernière intervention   11 567
       
      Bonjour,

      A titre d'info, Item(1) signifie que l'on parle du premier contrôle de contenu du document. S'il y en a plusieurs et qu'ils risquent de changer de place, ce n'est pas forcément la bonne solution.
      J'explique ici une autre solution :
      https://faqword.com/index.php/word/faq-word/formulaires-controles/772-commnent-recuperer-la-valeur-dun-controle-de-contenu-et-lutiliser-comme-nom-de-fichier

      m@rina
      0