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.
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
Bonsoir BERNARD
Merci pour la réponse ' c'est parfait.
Bonne nuit.
a+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko