Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2945 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Case avec critères de recherches un peu tordus

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Case avec critères de recherches un peu tordus

n°1969779
gaetan7
et mon cul, c'est du poulet?
Posté le 26-02-2010 à 18:43:51  profilanswer
 

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 :
  1. 'If Len(ComboBox1.Text) > 10 Then ' Nombre maxi de caractères
  2.    'ComboBox1.Text = Left(ComboBox1.Text, 10) ' Efface les caractères en trop
  3.    'ComboBox1.SelStart = Len(ComboBox1) ' Replace le curseur à la fin
  4.     ' 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 :
  1. Select Case Len(ComboBox1.Text)
  2. Case Is > 10
  3. ComboBox1.Text = Left(ComboBox1.Text, 10)
  4.    ComboBox1.SelStart = Len(ComboBox1)
  5. 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
mood
Publicité
Posté le 26-02-2010 à 18:43:51  profilanswer
 

n°1969788
galopin01
Posté le 26-02-2010 à 21:15:23  profilanswer
 

bonjour,
pour résumer...
utilise Instr pour détecter l'emplacement d'un caractère et Mid pour isoler une partie de la chaine.
Commence à stocker la valeur de ton ComboBox1.Text dans une variable ensuite...
Tu peux t'inspirer de ça :

Code :
  1. Sub test()
  2. Var = "1234'678901234|678"
  3. NbC = Len(Var)
  4. gPos = InStr(1, Var, ("'" ))
  5. pPos = InStr(1, Var, ("|" ))
  6. MsgBox gPos
  7. MsgBox pPos
  8. Code = Mid(Var, gPos + 1, pPos - gPos - 1)
  9. MsgBox Code
  10. End Sub


Bien sur à utiliser avec discernement dans tes If (Ya peut-être pas besoin de Select...)
Moi je commencerai par énumérer toutes les variables booléenne qui vont me servir...

Code :
  1. Y1 = NbC > 10
  2. Y2 = gPos > 0
  3. Y3 = pPos > 0


Ensuite tu peux y aller te tes If...

Code :
  1. If Y1 And Y2 Then
  2. ...
  3. ElseIf Y1 And Y3 Then
  4. ...
  5. Else...


A+


Message édité par galopin01 le 26-02-2010 à 21:30:58
n°1969813
gaetan7
et mon cul, c'est du poulet?
Posté le 26-02-2010 à 23:56:10  profilanswer
 

merci je vais tenter ça dès que j'ai un peu plus de temps!


---------------
"J'adore me promener en ville avec ma décapotable" JFK

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Case avec critères de recherches un peu tordus

 

Sujets relatifs
Ajouter case à cocher dans fonction javascript en langage Wordcase when + Selection d'une valeur
formulaire/recherche de case vide/messageProblème Shutdown time
[VBA-Outlook] Changer de compte en fonctions de critères[PHP] organisation d'un switch-case en fonction de droits
Classement numérique en fonction de 3 critères[php] Validation case réponse
Utilisation de la structure "case...of' en Pascal[SQL] Supprimer les entrées d'1 table selon critère d'1 autre table
Plus de sujets relatifs à : Case avec critères de recherches un peu tordus


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR