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

XL 2013 Recherche Userform d'un nombre au format texte

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 !

Thomasky

XLDnaute Nouveau
Bonjour à tous, étant débutant en vba je me suis lancé dans la création d'un formulaire (userform) de gestion des stocks, j'ai encore des améliorations à apporter à mon classeur mais je rencontre un problème :
Le Userform peut rechercher les matières avec différentes épaisseurs et dimensions via les listes déroulantes, et la recherche se fait dans la feuille "Source" qui liste toutes les données de la feuille "Stocks".
Le résultat apparaît alors dans la listbox du formulaire, le souci est que lorsqu'on rentre une épaisseur pour lancer la recherche, plus aucun résultat n'est trouvé comme si aucune épaisseur ne correspond, sauf lorsque l'épaisseur est de type fraction (3/4, 4/6, 6/8, 8/10, etc.).
Je soupçonne un problème de format entre la liste déroulante et mes résultats, j'ai donc essayé de tout mettre au format texte puis standard mais rien n'y fait.

Le code ci-dessous est celui utilisé pour la recherche et je pense qu'il est bon.

ligne_source = 2
While (Sheets("Source").Cells(ligne_source, 1).Value <> "")
If Sheets("Source").Cells(Rows.Count, 1).End(xlUp).Row = 1 Then
DerniereLigne = 2
Else
DerniereLigne = Sheets("Source").Cells(Rows.Count, 1).End(xlUp).Row
End If
If CritereMat <> "" And CritereEp = "" And CritereDim = "" Then
liste.Clear
For x = 1 To DerniereLigne
If Sheets("Source").Cells(x, 1) = CritereMat Then
Me.liste.AddItem Sheets("Source").Cells(x, 1)
Me.liste.List(Me.liste.ListCount - 1, 1) = Sheets("Source").Cells(x, 2)
Me.liste.List(Me.liste.ListCount - 1, 2) = Sheets("Source").Cells(x, 3)
Me.liste.List(Me.liste.ListCount - 1, 3) = Sheets("Source").Cells(x, 4)
Me.liste.List(Me.liste.ListCount - 1, 4) = Sheets("Source").Cells(x, 5)
End If
Next x

ElseIf CritereMat <> "" And CritereEp <> "" And CritereDim = "" Then
liste.Clear
For x = 1 To DerniereLigne
If Sheets("Source").Cells(x, 1) = CritereMat And Sheets("Source").Cells(x, 2) = CritereEp Then
Me.liste.AddItem Sheets("Source").Cells(x, 1)
Me.liste.List(Me.liste.ListCount - 1, 1) = Sheets("Source").Cells(x, 2)
Me.liste.List(Me.liste.ListCount - 1, 2) = Sheets("Source").Cells(x, 3)
Me.liste.List(Me.liste.ListCount - 1, 3) = Sheets("Source").Cells(x, 4)
Me.liste.List(Me.liste.ListCount - 1, 4) = Sheets("Source").Cells(x, 5)
End If
Next x

ElseIf CritereMat <> "" And CritereEp <> "" And CritereDim <> "" Then
liste.Clear
For x = 1 To DerniereLigne
If Sheets("Source").Cells(x, 1) = CritereMat And Sheets("Source").Cells(x, 2) = 2 And Sheets("Source").Cells(x, 3) = CritereDim Then
Me.liste.AddItem Sheets("Source").Cells(x, 1)
Me.liste.List(Me.liste.ListCount - 1, 1) = Sheets("Source").Cells(x, 2)
Me.liste.List(Me.liste.ListCount - 1, 2) = Sheets("Source").Cells(x, 3)
Me.liste.List(Me.liste.ListCount - 1, 3) = Sheets("Source").Cells(x, 4)
Me.liste.List(Me.liste.ListCount - 1, 4) = Sheets("Source").Cells(x, 5)
End If
Next x

End If

ligne_source = ligne_source + 1
Wend

Merci d'avance pour vos réponse, je met mon fichier en pièce jointe.
Si vous avez des pistes d'améliorations ou des conseils pour mon fichiers n'hésitez pas à venir m'en parler.
 

Pièces jointes

Dernière édition:
- 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

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
309
Réponses
5
Affichages
562
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
832
Réponses
3
Affichages
776
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…