Liste + recherche intuitive

Bonjour,

je travail à la création d'un annuaire avec plus de 800 contacts.

Pour effectuer une recherche plus rapide dans ce fichier, je cherche a créer une barre de recherche avec une liste intuitive. Si je tape B, seul les entreprises commençant par B peuvent être sélectionnées et apparaissent dans une liste sous la cellule, puis BE..... puis BET..... (ceci est un exemple).

Je vous joint un fichier où j'ai créé un début de tableau avec différentes colonnes.

Une liste déroulante fait appel a la "liste" Entreprise afin de renseigner les éléments associée a celle-ci.

1 - Merci de m'aider a ce que la barre de recherche devienne intuitive au fur et a mesure que l'on tape des lettres.

2 - Lorsqu'il y a 2 entreprises de même nom, ("Entreprise 1" dans ce classeur) , ma recherche liste renvoi uniquement la 1ere trouvée. Comment faire pour avoir le choix fin d'afficher la 2nd ?

Merci par avance de vos aides !!!

Bonjour,

à tester ...

Dim a(), choix()

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect([B4], Target) Is Nothing Then
        choix = Range("Tableau2[[entreprise]:[NOM]]").Value
        Me.libelle.List = choix
        Me.libelle.Visible = True
        Me.libelle.Activate
    Else
        Me.libelle.Visible = False
    End If
End Sub

Private Sub libelle_Change()
   If Me.libelle.ListIndex = -1 Then
        Dim b()
        n = 0
        For i = LBound(choix) To UBound(choix)
            If UCase(choix(i, 1)) Like "*" & UCase(Me.libelle) & "*" Then
                n = n + 1: ReDim Preserve b(1 To 4, 1 To n)
                b(1, n) = choix(i, 1): b(2, n) = choix(i, 2): b(3, n) = choix(i, 3): b(4, n) = choix(i, 4)
            End If
        Next i
        If n > 0 Then
            ReDim Preserve b(1 To 4, 1 To n)
            Me.libelle.Column = b
        End If
        Me.libelle.DropDown
    End If
End Sub

Private Sub libelle_Click()
    ActiveCell.Value = Me.libelle
    ActiveCell.Offset(, 1) = libelle.Column(1)
    ActiveCell.Offset(, 2) = libelle.Column(2)
    ActiveCell.Offset(, 3) = libelle.Column(3)
End Sub

Private Sub libelle_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        ActiveCell.Offset(1).Select
    End If
End Sub

Bonjour.

Merci pour cette solution mais lors du teste, la recherche intuitive est bien présente dans l'affichage des lettres proposées

mais pas dans la liste deroulante.

Par exemple si je tape "gir" sa me propose bien "girafe" pour la suite de ma saisie

mais le menu déroulant n'affiche pas uniquement girafe et girafe 2.

Concernant la sélection d'un contact différent pour le même nom d’entreprise, cela fonctionne.

j'ai pourtant bien les 2

capture d ecran 264

Re,

Nouveau test :

même problème. J'ai bien une saisie intuitive mais pas de réduction de liste suite aux premières lettres tapées.!

D'ou cela peut-il venir ?

Merci

sans titre 1

Si tu supprimes la fin (en bleu) cela va l'afficher.

Mais je reconnais que ce n'est pas satisfaisant, je vais regarder comment corriger ce point.

Dans l'attente, en triant sur le nom, c'est déjà plus acceptable, mais cela ne réduit pas la liste.

Je vais regarder cela ...

correction

En effet, c'est par là que j'ai appris aussi cette astuce que j'ai simplifiée et adaptée aux données en tableau ...

Une petite évolution de confort avec :

Me.libelle.Clear

Bonjour et merci de votre retour.

La fonction recherche correspond tout à fait au résultat attendu !

Le fait de dérouler la liste avec les flèches et que cela complète dynamiquement les autres cellules est juste parfait.

Est-il possible d'avoir ce même procédé pour la colonne placé "avant" la barre de recherche ?

Effectivement, dans mon classeur, la colonne A correspond d'ors et déjà a une macro spécifique qui permet de créer un numéro unique. (autre sujet dans ce forum : https://forum.excel-pratique.com/viewtopic.php?f=2&t=116968

** ** ** **

Ci joint le fichier avec les mises en pages prévues dans mon fichier final :

2 feuilles différentes : 1 pour les entreprises / 1 pour les clients.

1 barre de recherche par onglet : feuille entreprise en C4 / feuille clients en B4

Sur chaque feuille , il existe déjà la macro qui crée le numéro unique en colonne A : entreprise E-XXXX / clients C-XXXX

Au vue de mes compétences limitées dans la domaine de la macro , je n'arrive pas compiler toutes ces contraintes dans le même fichiers.

Comment mettre en place 2 écriture macro sur une seule et même feuille ?

Pourriez-vous m'aider a mettre en place cette fonction recherche sur ces 2 feuilles.

MERCI par avance

Est-il possible d'avoir ce même procédé pour la colonne placé "avant" la barre de recherche ?

1 barre de recherche par onglet : feuille entreprise en C4 / feuille clients en B4

donc les colonnes : feuille entreprise en B4 / feuille clients en A4, c'est bien cela ?

Re,

Je souhaiterais que le fait de dérouler la liste avec les flèches complète dynamiquement les autres cellules de la ligne

y compris les cellules placés avant la cellule de recherche.

En réalité, j'ai besoin que le numéro unique (en colonne A) soit associé a l'entreprise recherché. (de même chez les Clients)

Donc pour la feuille entreprise en B4 + A4 & feuille clients en A4, .

Merci Cool

J'avais commencé un truc ... mais s'il y a 3 colonnes cela devient complexe.

Donc je vais développer une méthode plus simple ...

super !

Pas de problème si d'autre proposition quant à la mise en page etc.

Voici, nouvelle version plus simple en programmation.

Il suffit de taper n'importe quel caractère qu'il soit au début, milieu, fin de l'une ou l'autre des zones grisées.

Bonjour Steelson,

Merci pour ce retour.

1er essai avec un formulaire de recherche qui s'ouvre a avec une saisie intuitive dès la 1er lettre tapée.

Cela est super et fonctionne pour les 3 premières colonne du tableau.

Problème, l'ensemble des colonne n'est pas mis à jour suivant l'entreprise selectionné a le meme nom.

Par exemple pour une ENTREPRISE A, avec numéro unique différent,

les colonnes CIVILITE, NOM, PRENOM....etc ne sont mis à jour correctement.

Retour rapide.

Merci pour tout.

Passez un bon WE.

Problème, l'ensemble des colonne n'est pas mis à jour suivant l'entreprise selectionné a le meme nom.

Ilfaut que tu changes les formules RECHERCHEV qui prend la première occurrence trouvée

quel est l' "identifiant" unique?

J'ai modifié tes formules

132annuaire-test-3.xlsm (33.54 Ko)

Re..

Merci pour cette option très logique.

Je n'y ai pas pensé 🤔

Je met en place tout cela et vous tiens au courant.

Cool.

Merci

Rechercher des sujets similaires à "liste recherche intuitive"