XL 2010 Saisie prédictive avancée-navigation au clavier

  • Initiateur de la discussion Initiateur de la discussion Docdav
  • Date de début Date de début

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 !

Docdav

XLDnaute Junior
Bonjour, dans un combobox, quand on entre du texte, il propose le premier mot de la liste allouée au combobox.

J'aimerais qu'il soit cherché dans tout le mot et non juste au début ?
exemple :
j'ai dans la liste Réa-Coma, Réa-ACR non réanimé, Réa-ACR réanimé.

Je voudrais pouvoir taper ACR et qui me propose ces choix (là ça bloque, je ne peux y accéder que en tapant réa puis en défilant). J'aimerais aussi savoir si il peut ignorer les accents ?

Merci à ceux qui me lisent et auront une idée.
David.
 
Bonjour David et bienvenue sur XLD 🙂

Sans fichier, voici un exemple

VB:
With Feuil. Range("a1:a65536")
Set Cel = .Find(Combobox1, , , xlPart)
If Not cel Is Nothing
Premaddress = cel.Address
Do
Ici ton code
Set cel = .FindNext(cel)
Loop While Not cel And cel.Address <> Premaddress
End If
End With

Explications: xlPart recherche le mot qui ressemble à "ACR", xlWhole recher le mot exacte Réa-ACR réanimé par exemple.
 
c'est la case diagnostic en bas a gauche du formulaire (j'ai mis pour le lancer aller sur GO ! car il est diffuser à des moins-sachants que moi (et vu mon niveau faible...)), et la liste qui sert en dans la feuille "codage" /onglet "Données" /Colonne "Diagnostic"
 
Bonjour, je viens de regarder le fichier, exactement ça, un grand merci, je n'avais pas vu ce fichier-ci parmi la multitude d'exemples que vous donnez (quelle base !).
J'ai pu modifier la liste pour vérifier.
Il faut maintenant que je l'inclue dans mon userform. Autre étape.

Encore un grand merci. Je mets en résolu dès que j'ai réussi à l'inclure.
 
J'ai presque réussi je crois.
J'ai enlevé le 1er module qui définissait la comboBox. Faut que je vois a quoi servent les autres modules.
J'ai créé une combobox appelée combobox1, ne lui ai pas donné de liste (row source)

et mis ce code :
Code:
Private Sub ComboBox1_Change()
 Dim a()
 a = Application.Transpose(Sheets("Donnees").Range("AF7:AF202")) 'la liste
 Me.ComboBox1.Font.Size = 10
 Me.ComboBox1.List = a
If Me.ComboBox1 <> "" And IsError(Application.Match(Me.ComboBox1, a, 0)) Then
  Me.ComboBox1.List = Filter(a, Me.ComboBox1.Text, True, vbTextCompare)
  Me.ComboBox1.DropDown
 End If
  ActiveCell.Value = Me.ComboBox1
End Sub

J'ai du définir la taille de police en vba car sinon j'avais une taille de police à 2-3...illisible.
Par contre je n'ai pas la liste qui s'affiche quand on clique sur la fleche (j'ai du oublier une propriété...je cherche)

Un grand pas de fait, merci.
 
Bonjour Mr Gontier.
J'ai entièrement modifié mon fichier, passé par des modules pour être plus clair.
Je n'arrive pas à inclure votre code.

Ce que j'ai compris :
-le 1er private sub gère le clic dans une cellule pour créer la combobox. je l'ai enlevé en partie puisque j'aiune combobox créée.
le 2eme la frappe dans le combobox, le 3eme le double clic et le 4eme la touche vers le bas pour ouvrir le combobox.

J'ai essayé de le mettre en module ou dans le userform, j'ai bien la liste qui s'ouvre quand je vais dans la box, avec mes référence, mais il ne reconnait pas la saisie, qu'ai-je oublié ?

J'ai repris qq paramètres, que je mets dans le "sub initialyse" pour définir la liste et la taille de police (sinon c'est illisible), pas de saisie prédictive.
je ne comprends pas.

Pouvez-vous m'aider ?
 
je me réponds avant même d'avoir envoyé le fichier. il y a vait un active.cell.value que j'ai enlevé puisque sans intéret, et j'avais une erreur sur le declechement avec un b_combobox1.change au lien de combobox1.change (d'où vient ce b...mystère...)
 
Bonjour, j'ai utilisé la saisie prédictive pour un formulaire, mis en module.
J'aimerais savoir si il est possible de corriger un truc.

Quand j'ai entré un début de mot, la liste s'ouvre avec les propositions, parfait, ce que je cherchait.
J'aimerais maintenant pouvoir naviguer dans ces propositions au clavier, sans avoir à cliquer sur la souris.
Que la liste devienne donc le tri organisé par la fonction, car là, une fois le tri organisé, si je fais flèche vers le bas, l'item est sélectionné, mais la liste redevient la liste initiale (avec tous les items).

Je mets le code et le fichier pour plus de simplicité à comprendre mon discours.

UN grand merci à Mr Gontier pour votre site, super enrichissant.

Définition de la combobox "Diag" dans le userform
VB:
'----------dim box diag-----------------
Dim A()
A = Application.Transpose(Sheets("Donnees").Range("AF5:AF202"))
    Feuille_Saisie.CmbDiag.List = A
    Feuille_Saisie.CmbDiag.Font.Size = 10

Appel par un call pred_change du module

VB:
Sub pred_change()
Dim A()
A = Application.Transpose(Sheets("Donnees").Range("AF5:AF202"))
    Feuille_Saisie.CmbDiag.List = A
    Feuille_Saisie.CmbDiag.Font.Size = 10
    If Feuille_Saisie.CmbDiag <> "" And IsError(Application.Match(Feuille_Saisie.CmbDiag, A, 0)) Then
    Feuille_Saisie.CmbDiag.List = Filter(A, Feuille_Saisie.CmbDiag.Text, True, vbTextCompare)
    Feuille_Saisie.CmbDiag.DropDown
End If
End Sub
 

Pièces jointes

- 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
Retour