Problème saisie semi-automatique

Bonjour tous le monde,

Je crée un nouveau poste car je vient de me rendre compte qu'il y'a un petit soucis sur mon application. Donc en effet lorsque je commence à saisir les premières lettres dans ma combobox sa fonction pour les 3/4 de mes références sauf que pour d'autres sa ne fonctionne pas.

Exemple: Si dans la première combobox je met roulements ensuite dans la seconde je tape la référence 6005-2RSH, l'application ne reconnait pas cette référence alors qu'elle existe bien dans mes références.

Donc ma question est la suivante! existe t-il une méthode de saisie semi-automatique plus poussé que MatchEntry qui apparement ici ne fonctionne pas?

En espérant que cela existe je vous remercie d'avance pour vos réponse. Je vous joint en PJ le fichier.

Bonsoir yohann.Gestion

Attention car certaines références des roulements commencent par un espace dans tes listes

ajouté une macro de tri et enlevé les espaces

Bonsoir BOB71AU,

Tout d'abord merci d'avoir consacrer du temps pour moi c'est vraiment sympa.

Sur le dossier test que tu m'a envoyé sa fonctionne super bien par contre dès que je l'adapte sur mon application sa me et un message d'erreur "Variable non définie" et sa me souligne temp donc voila j'ai bien essayé de comprendre pourquoi mais en vain.

Merci.

Re

Je n'ai pas déclaré la variable temp

modifie

Private Sub Cbo_92_Change()
' Equipements
Dim J As Long, i As Long, temp As Variant

Merci beaucoup effectivement sa fonctionne, la principal erreur dans mon cas c'est que comme vous me l'avez précisé j'ai des espace devant certaines références.

Savez vous comment enlever tous ces espaces rapidement pour ne pas faire référence par référence.

Merci

Rere

en placant ce code dans un module

Sub espace()
Dim j As Long
For j = 2 To Range("A" & Rows.Count).End(xlUp).Row
  Cells(j, 2) = Trim(Cells(j, 2))
Next j
End Sub

Bonjour,

Saisie intuitive caractère par caractère sur 2 niveaux

Option Compare Text
Dim f, TblChoix2(), choix2(), choix1(), code()
Private Sub UserForm_Initialize()
  Set f = Sheets("bd")
  choix2 = Application.Transpose(f.Range("b2:b" & f.[b65000].End(xlUp).Row))
  choix1 = Application.Transpose(f.Range("a2:a" & f.[a65000].End(xlUp).Row))
  code = Application.Transpose(f.Range("g2:g" & f.[a65000].End(xlUp).Row))
  Set d1 = CreateObject("Scripting.Dictionary")
  For Each c In choix1: d1(c) = "": Next c
  Me.ComboBox1.List = d1.keys
End Sub

Private Sub ComboBox1_Change()
   If Me.ComboBox1.ListIndex = -1 And IsError(Application.Match(Me.ComboBox1, choix1, 0)) Then
     Set d1 = CreateObject("Scripting.Dictionary")
     tmp = Me.ComboBox1 & "*"
     For Each c In choix1:
        If c Like tmp Then d1(c) = ""
     Next c
     Me.ComboBox1.List = d1.keys
     Me.ComboBox1.DropDown
   Else
     Condition = Me.ComboBox1
     If Condition = "" Then Exit Sub
     Set d2 = CreateObject("Scripting.Dictionary")
     For i = LBound(choix2) To UBound(choix2)
       If choix1(i) = Condition Then d2(choix2(i)) = ""
     Next i
     TblChoix2 = d2.keys
     Me.ComboBox2.List = TblChoix2
     Me.ComboBox2.SetFocus
     If Val(Application.Version) > 10 Then SendKeys "{f4}"
   End If
End Sub

Private Sub ComboBox2_Change()
If Me.ComboBox1 <> "" Then
  If Me.ComboBox2.ListIndex = -1 And IsError(Application.Match(Me.ComboBox2, choix2, 0)) Then
   Set d1 = CreateObject("Scripting.Dictionary")
   tmp = UCase(Me.ComboBox2) & "*"
   For Each c In TblChoix2
     If UCase(c) Like tmp Then d1(c) = ""
   Next c
   Me.ComboBox2.List = d1.keys
   Me.ComboBox2.DropDown
  Else
    For i = LBound(choix1) To UBound(choix2)
       If choix1(i) = Me.ComboBox1 And choix2(i) = Me.ComboBox2 Then Me.TextBox1 = code(i)
     Next i
  End If
 End If
End Sub

Ceuzin

Bonjour à tous,

Vraiment merci pour toutes vos solutions qui fonctionne très bien. Voilà un problème de plus qui est résolue et sa fait vraiment plaisir en tout cas un grand bravo à tous ceux qui acte pour faire progresser des novices comme moi..

Merci et bravo.

Rechercher des sujets similaires à "probleme saisie semi automatique"