bonjour!
on m'a demander de faire un composant de recherche de références d'articles dans un fichier excel à partir de données issues d'un code barre
le problème est que suivant le fournisseur, le code barre est différents , ainsi j'ai du mal à comparer les données aux références de mon tableaux.
J'ai donc réalisé une macro qui me sort les données que je veux, mais à condition de saisir les références à l'identique
j'aimerai bcp traiter le champ du combobox (comme limiter le nombre de caractère) avant la recherche
je l'ai fait ainsi avec mes maigres connaissances en VBA
Code :
- 'If Len(ComboBox1.Text) > 10 Then ' Nombre maxi de caractères
- 'ComboBox1.Text = Left(ComboBox1.Text, 10) ' Efface les caractères en trop
- 'ComboBox1.SelStart = Len(ComboBox1) ' Replace le curseur à la fin
- ' End If
|
Par contre j'ai quelques critères qui rendent la chose plus complexe
par exemple des codes barres Japonais ou la référence est indiquée du 4e au 13 caractère de la chaine: 0104571263624013301
des codes barres de produits americains ou la référence est systématiquement juste avant le caractère '|'
j'utiliserai un CASE
donc ici je fais un truc comme ça
Code :
- Select Case Len(ComboBox1.Text)
- Case Is > 10
- ComboBox1.Text = Left(ComboBox1.Text, 10)
- ComboBox1.SelStart = Len(ComboBox1)
- End Select
|
et ça ne marche pas génial dès que je tombe sur un de ces salops d'américain ou Japonais, forcément
idéalement il me faudrait comme critères:
Case caractère |
garder tout ce qu'il y a avant le |
Case commence par 01045 et fait 19 caractère
garder ce qu'il y a entre le 3e et le 14e caractère
il me faut du SearchChar je pense, mais en pratique j'ai un peu de mal
je vous remercie d'avance!
---------------
"J'adore me promener en ville avec ma décapotable" JFK