Bug suite à la recherche dans un deuxième ListBox

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

  • 99_Geely.xls
    721.5 KB · Affichages: 27
  • 99_Geely.xls
    721.5 KB · Affichages: 37
  • 99_Geely.xls
    721.5 KB · Affichages: 37
Dernière édition:

Pierrot93

XLDnaute Barbatruc
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
@+
 

Geely

XLDnaute Occasionnel
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

  • 99_Geely.xls
    725 KB · Affichages: 30
  • 99_Geely.xls
    725 KB · Affichages: 23
  • 99_Geely.xls
    725 KB · Affichages: 22

Geely

XLDnaute Occasionnel
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
 

Geely

XLDnaute Occasionnel
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
 

Discussions similaires

Statistiques des forums

Discussions
312 370
Messages
2 087 690
Membres
103 640
dernier inscrit
So pizza