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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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 =...
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
818
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…