Bug suite à la recherche dans un deuxième ListBox

  • Initiateur de la discussion Initiateur de la discussion Geely
  • Date de début Date de début

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 !

Geely

XLDnaute Occasionnel
Bonsoir le Forum

Paritec m'avait donné une macro pour faire des recherches dans un Userform (merci à lui).
Tout fonctionne bien, sauf lorsque j'effectue une recherche sur la dernière identité de ma feuille, le résultat de Userform2 est faut, il affiche le résultat de la recherche précédente.

détails dans la feuille.

je tourne en rond.
Geely
 

Pièces jointes

Dernière édition:
Re : Bug suite à la recherche dans un deuxième Userform

Bonjour,

petites remarques au passage :
- pas trouvé le 2ème userform.
- "val" est une fonction vba, déconseillé de l'utiliser comme nom de variable ou d'objet...

bonne journée
@+
 
Re : Bug suite à la recherche dans un deuxième Userform

Bonjour Pierrot93, Bonjour le Forum

- "val" est une fonction vba, déconseillé de l'utiliser comme nom de variable ou d'objet...
Ok c'est noté.

- pas trouvé le 2ème userform.
Je me suis trompé. C'est ListBox2
fichier corrigé


Geely
 

Pièces jointes

Re : Bug suite à la recherche dans un deuxième ListBox

Manifestement ça ne fonctionne pas lorsque la date et heure de la feuille "identité" obtenue après la recherche est supérieur à la date et heure de la feuille "contrôle"

val = ListBox1.Column(0)
ListBox2.Clear
With Sheets("Contrôles")
dd = .Range("F2:F" & .Range("F" & Rows.Count).End(xlUp).Row)
End With
For i = 1 To UBound(dd) - 1
If CDate(val) >= dd(i, 1) And CDate(val) <= dd(i + 1, 1) Then ligne = i + 1: Exit For
Next i


Geely
 
Re : Bug suite à la recherche dans un deuxième ListBox

Bonsoir le forum

Aprés avoir bien cherché j'ai trouvé cette solution qui ne doit pas être la plus stylée mais çà marche

Code:
 h = UBound(dd)
    For i = 1 To UBound(dd) - 1
    If CDate(dal) >= dd(h, 1) Then ligne = h: Exit For
    
        If CDate(dal) >= dd(i, 1) And CDate(dal) <= dd(i + 1, 1) Then ligne = i + 1: Exit For
    Next i

Geely
 
- 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
1 K
Retour