Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres (RESOLU)USF comparer des dates d'un textbox et une cellule

chaelie2015

XLDnaute Accro
Bonsoir Forum
Je souhaite faire ce qui suit :
1.chercher la dernière date d'un NOM saisi dans cmbNom dans le tableau .
2. une fois trouvé la date, comparer cette dernière avec la date saisie dans txtDate_départ
3. afficher résultat dans txtInfodate :
3.1. si date trouvé est sup a txtDate_départ alors afficher dans txtInfodate: NOM rentrera le ( date trouvé)
3.2. si date trouvé est inf à txtDate_départ alors afficher dans txtInfodate : Nom est libre.

exemple :
je sélectionne dans le cmbNom = Nom 01
après je saisi une date dans le txtDate_départ = 15/02/2022
donc j'aurai dans txtInfodate : Nom 01 rentrera le 20/02/2022.
merci
 

Pièces jointes

  • CHARLIE COMPARAISON DES DATES USF.xlsm
    14.6 KB · Affichages: 13
Solution
Bonsoir.
Comme ça ? :
VB:
Option Explicit
Private TNoms(), TDatRet(), DatRet As Date, DatDép As Date
Private Sub UserForm_Initialize()
   txtNow.Value = "On est : " & Format(DateValue(Now), "dddd dd/mm/yyyy")
   TNoms = Feuil1.[B2].Resize(Feuil1.[B1000000].End(xlUp).Row - 1).Value
   TDatRet = Feuil1.[D2].Resize(UBound(TNoms, 1)).Value
   End Sub
Private Sub cmbNom_Change()
   Dim L&
   DatRet = 0
   For L = 1 To UBound(TNoms, 1)
      If TNoms(L, 1) = cmbNom.Text Then
         If DatRet < TDatRet(L, 1) Then DatRet = TDatRet(L, 1)
         End If
      Next L
   End Sub
Private Sub txtDate_départ_Change()
   On Error Resume Next
   DatDép = CDate(txtDate_départ.Text)
   If Err Then Exit Sub
   If DatRet >= DatDép Then
      txtInfodate.Text =...

Dranreb

XLDnaute Barbatruc
Bonsoir.
Comme ça ? :
VB:
Option Explicit
Private TNoms(), TDatRet(), DatRet As Date, DatDép As Date
Private Sub UserForm_Initialize()
   txtNow.Value = "On est : " & Format(DateValue(Now), "dddd dd/mm/yyyy")
   TNoms = Feuil1.[B2].Resize(Feuil1.[B1000000].End(xlUp).Row - 1).Value
   TDatRet = Feuil1.[D2].Resize(UBound(TNoms, 1)).Value
   End Sub
Private Sub cmbNom_Change()
   Dim L&
   DatRet = 0
   For L = 1 To UBound(TNoms, 1)
      If TNoms(L, 1) = cmbNom.Text Then
         If DatRet < TDatRet(L, 1) Then DatRet = TDatRet(L, 1)
         End If
      Next L
   End Sub
Private Sub txtDate_départ_Change()
   On Error Resume Next
   DatDép = CDate(txtDate_départ.Text)
   If Err Then Exit Sub
   If DatRet >= DatDép Then
      txtInfodate.Text = cmbNom.Text & " rentrera le " & DatRet
   Else
      txtInfodate.Text = cmbNom.Text & " est libre"
      End If
   End Sub
 

chaelie2015

XLDnaute Accro
Bonsoir BERNARD
Merci pour la réponse ' c'est parfait.
Bonne nuit.
a+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…