Saisie Prédictive dans TextBox

Bonsoir le forum,

Je souhaite réaliser un petit utilitaire pour mes collègues sur la forme d'un Userform contenant une textbox.

Cette textBox doit recevoir des codes sous la forme suivante :

00010006

071115

0065789

0023456A

sachant que dans al feuil2 du classeur j'ai la liste complète des codes (2248 au total) je souhaiterais avoir une saisie du code prédictive.

Si je tape :

0 alors tous les codes ci-dessus sont accessibles

00 seuls le 1er, 2ème et 3ème sont accessibles

000 le 1er est accessible uniquement

0000 il n'y a rien

Je ne souhaite pas mettre en place un listBox car les codes ne peuvent être classés par ordre croissant du fait de la présence de lettre. J'ai déjà proposé cette variante mais on ne s'y retrouve pas.

Merci de vos aides et conseils.

Personne pour m'aider...

Bonjour,

Si on peut t'aider mais sans fichier ce n'est pas facile.

Peux-tu le mettre en ligne de manière à voir ce que l'on peut te proposer

Amicalement

Dan

Bonjour Nad-Dan,

Voici un "morceau" de fichier sachant qu'il y a à ce jour 2248 codes...

Merci de ton aide,

https://www.excel-pratique.com/~files/doc2/Saisie_Predictive.xls

Bonjour,

Bonjour, Dan

une solution, en utilisant un ComboBox, à la place d'un TextBox..

Tu ne peux entrer que des chiffres ou des lettres (majuscules ou minuscules)

Bonne journée (pour moi...), soirée, pour vous

https://www.excel-pratique.com/~files/doc2/Saisie_Predictive_v1.zip

Bonjour le forum,

Bonjour Cousin,

Merci pur le code qui correspond exactement à mon besoin.

J'ai transféré le code dans mon application et là dés le départ de la macro qui commence comme suit :

Sub Rechercher()

Userform1.show

End Sub

Une fenêtre apparait avec Erreur d'exécution -2147352571 (80020005) le type ne correspond pas.

Quand je le fais en F8 ça passe mais le Userform ne se charge pas à l'écran!!?

Je ne comprends pas pourquoi.

Merci de ton aide,

Bonsoir,

peux-tu mettre ton fichier réel, avec des données bidons, d'une dizaine de lignes, AVEC l'userform?

Bon j'ai bricolé le code et au final ça fonctionne...

Cependant, dernière petit chose.

Si par exemple un farfelu (comme moi par exemple) tape n'importe quoi 00YYYADERT22

mon code s'execute et envoie cette valeur en A1.

En A2 je fais une recherceV qui me donne #N/A car il n'y a pas de données.

Je souhaiterais dire si Range("A2").value = "#N/A# then Msbox "Arrête de boire"

Et ça ne fonctionne pas.

Bonsoir,

essaie ça, dans le code du bouton "Valider"

Private Sub CommandButton1_Click()
With Me.ComboBox1
    If .Value = "" Then
        MsgBox "Pas de données"
        .SetFocus
        Exit Sub
    End If
    If .ListIndex = -1 Then
        MsgBox "suffit, le pastis!"
        .Value = ""
        .SetFocus
        Exit Sub
    End If
End With
End Sub

Merci CousinHub mais je pense que je me suis mal exprimé.

Si je tape n'importe quoi dans la Combobox. Cette valeur est déposée dans la cellule A1.

Ensuite dans la celulle A2 je fais une rechercheV sur la valeur de la cellule A1 et comme la valeur n'existe pas rechercheV me renvoit #N/A.

De là je demande au code si le résultat de rechercheV donne #N/A alors Msg box "arrête de boire".

Pour moi c'est indépendant de la combobox donc je ne comprends pas pourquoi tu y fais référence à moins que mon pauvre niveau de VBA m'empêche de comprendre le code.

A force d'insister j'ai trouvé une solution qui est la suivante :

if IsError (Range("C1").value) = True then Msg "Stop l'aniset"...

Si ça peut servir pour une fois que je trouve un truc...

Merci à toi cousinHub et au forum

Rechercher des sujets similaires à "saisie predictive textbox"