Zone de texte dans un formulaire

Résolu
Bonjour,

Je dois réaliser un formulaire, dans je dois saisir des informations et notamment une date de début de mission.
Ensuite les informations sont intégré automatiquement dans un tableau qui me calcul une multitude de d'échéances liés à cette date.

Je souhaiterai cependant que dans mon formulaire apparaisse une date de fin de mission previsionnelle (à +105j).

Donc avoir une barre avec écrit date de fin: jj/mm/aaaa.

Mais je souhaiterai pouvoir modifier cette date de fin pour la contraindre...

Je m'explique... Imaginons la date de fin que le formulaire m'indique est le 15/06/2016, mais que j'ai besoin que ma mission soit fini pour le 01/06/2016, je veux pouvoir l'indiquer pour que tous mes échéances calculés prennent en compte cette date...

Le formulaire est deja fait, mais je ne sais juste pas comment y intégrer cette case qui m'affiche un résultat (que je puisse modifier) en fonction d'une case de saisie du même formulaire.

Je ne sais pas si je me fais bien comprendre :)

En vous remerciant.

6 réponses

  1. Bonjour, avec le fichier en question (sans données perso) ce serait plus simple pour t'aider
    0
  2. C'est dans tes zones de texte (textbox) avec les dates dont tu parles? Si c'est ça, ajoute
    Private Sub TextBox_Date_AfterUpdate()
    With Me
    fin = CDate(.TextBox_Date) + Day(15)
    Debug.Print (fin)
    .TextBox1 = fin
    End With
    End Sub
    dans ton code pour l'usf. Dans la textbox où tu entres la date de début doit être obligatoirement au format JJ/MM/AAAA et la date de fin se met automatiquement après un appuie sur [Entrée]
    0
    1. Merci Tyranausor...
      Ton code semble marcher, mais par contre ca ne m'ajouter que 14j au lieu de 105...
      J'ai tenté d'écrire:

      Private Sub TextBox_Date_AfterUpdate()
      With Me
      fin = CDate(.TextBox_Date) + Day(105)
      Debug.Print (fin)
      .TextBox1 = fin
      End With
      End Sub

      Au lieu de:

      Private Sub TextBox_Date_AfterUpdate()
      With Me
      fin = CDate(.TextBox_Date) + Day(15)
      Debug.Print (fin)
      .TextBox1 = fin
      End With
      End Sub

      Mais rien n'y fait...
      0
  3. Bonjour
    modification des combobox & Textbox

    http://www.cjoint.com/c/FCykmMvB4Lc
    A+
    Maurice
    0
    1. Merci beaucoup pour la macro Maurice...
      J'ai rien compris mais ca marche ;)
      0
    2. @TeddyGalereBonjour
      voila encore une modife pour le bouton Valide
      http://www.cjoint.com/c/FCyqUdz2Acc
      A+
      Maurice
      0
    3. Merci Maurice...
      Par contre j'ai pas tout compris ce que tu as fais?^^
      Et pk j'ai plus acces a ma feuille de données?
      0
    4. @TeddyGalereBonjour
      regarde dans le ThisWorkbook Workbook_Open
      Feuil3.Visible = 2 :mettre -1 a la place de 2
      A+
      Maurice
      0
  4. Bonjour, j'ai mal lu, mille excuses. En effet, même sous Excel (sans vba) tu ajoutes 105 à une date ça ajoute 15 jours!
    La solution serait de convertir 105 jours en mois et jours, soit 3 mois (de 30 jours) et 15 jours
    0
    1. mais tu l'integre comment dans ta macro du coup???
      0
  5. J'ai un code qui fonctionne mais qui ne donne pas tout as fait la même chose que si tu faisais le calcul sans VBA.
    Sous Excel
    01/03/2016+105=14/06/2016
    et avec VBA avec le code Sub
    ajout_jours_date()
    Cells(10, 8) = "Date de départ"
    Cells(11, 8) = "Jours à ajouter"
    Cells(12, 8) = "Résultat"

    d = "01/03/2016"
    j = DateAdd("m", 3, d)
    Cells(12, 9) = j + 14
    End Sub
    j'ai 16/06/2016 soit une différence de 2 jours. Vu que c'est du prévisionnel, ça ne fait pas grand chose
    0
    1. Merci beaucoup :)
      0
    2. Par contre dernier truc si je peux me permettre...
      Il faudrait que dans ma sheet "Masque de saisie", la cellule C22 soit égal à la TextBox1
      (bon ca c'est easy)
      Mais il faudrait que ma cellule C18 soit égal à:
      TextBox1-105*((Textbox1-TextBox_Date)/105)

      Sauf que quand je tape dans ma macro:
      Sheets("Masque de saisie").Cells(18, 3) = TextBox1 - 105 * ((TextBox1 - TextBox_Date) / 105)

      Ca me met en mode débogage... :'(
      0
  6. Bonjour, c'est normal. Tu fais des opérations sur une date (VBA ne fonctionne pas tout à fait comme Excel). Je vois que tu veux faire une différence entre deux dates, c'est avec datediff(). Mais je ne comprend pas ce que tu veux obtenir par TextBox1 - 105 * ((TextBox1 - TextBox_Date) / 105) .
    As-tu un exemple chiffré?
    0
    1. C'est bon j'ai trouvé !!!
      C'était pour recalculer mma date initial en faisant un prorata...
      Mais tout va bien!!

      Un grand merci a tous !!!
      0