Recherche de noms en tapant la 1ère lettre

  • Initiateur de la discussion Initiateur de la discussion J2P
  • 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 !

J

J2P

Guest
Bonjour,
J'ai un fichier excel dans lequel j'ai des colonnes nom, prénom, adresse,...(un répertoire)
Je voudrais créer un bouton qui en le renseignant de la 1ère lettre m'afficherait les noms concernés afin de compléter une autre cellule correspondante dans le tableau.
(Tri comme le fait l'explorateur Windows, par exemple)
Merci de votre aide.
J2P
 
Re : Recherche de noms en tapant la 1ère lettre

Bonjour J2P et bienvenu, bonjour le forum,

Puisque tu es nouveau parmi nous, je te recommande de lire la
Lien supprimé du forum qui donne tous les bons plans pour obtenir de l'aide rapidement.
Dans ton cas ce qui pose problème c'est l'absence de fichier exemple et l'absence même d'un début de travail de ta part...
 
Re : Recherche de noms en tapant la 1ère lettre

Bonsoir,
Merci de cette réponse rapide.
J'ai bien essayé des aides trouvées sur le web, mais sans pouvoir aller assez loin.
Blocage à la création de Userform, si bien est que je doive passer par la ?
Je découvre =ment ce forum et j'espère ne pas faire trop d'erreur.
PJ : fichier "adhésions essaib"
avec le fichier
 

Pièces jointes

Dernière modification par un modérateur:
Re : Recherche de noms en tapant la 1ère lettre

Bonsoir J2P, salut Robert 🙂

Voyez le fichier joint qui j'espère vous donnera des idées.

Cette macro est dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ref As Range
Set ref = Intersect(Target.Cells(1, 1), [A1:D1])
If Not ref Is Nothing Then
  ref.Select
  [Z:Z].ClearContents 'RAZ colonne auxiliaire
  If IsEmpty(ref) Then Exit Sub
  Application.ScreenUpdating = False
  Me.AutoFilterMode = False
  With Range(Cells(2, ref.Column), Cells(Rows.Count, ref.Column).End(xlUp))
    .AutoFilter 1, ref.Text & "*" 'filtre automatique
    .SpecialCells(xlCellTypeVisible).Copy [Z1]
    .AutoFilter 'désactive le filtre
  End With
  SendKeys "%{UP}" 'affiche la liste de validation
End If
End Sub
En A1 B1 C1 D1 il y a des listes de validation...

A+
 

Pièces jointes

Re : Recherche de noms en tapant la 1ère lettre

Re,

En fait il faut 4 listes de validations distinctes et cette macro :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ref As Range
Set ref = Intersect(Target.Cells(1, 1), [A1:D1])
If Not ref Is Nothing Then
  ref.Select
  ref.Offset(, 26).EntireColumn.ClearContents 'RAZ colonne auxiliaire
  If IsEmpty(ref) Then Exit Sub
  Application.ScreenUpdating = False
  Me.AutoFilterMode = False
  With Range(Cells(2, ref.Column), Cells(Rows.Count, ref.Column).End(xlUp))
    .AutoFilter 1, ref.Text & "*" 'filtre automatique
    .SpecialCells(xlCellTypeVisible).Copy ref.Offset(, 26)
    .AutoFilter 'désactive le filtre
  End With
  SendKeys "%{UP}" 'affiche la liste de validation
End If
End Sub
Par ailleurs il faut mettre la colonne B au format Texte et revalider tous les N° pour que le filtre fonctionne sur cette colonne.

Fichier (2).

A+
 

Pièces jointes

Re : Recherche de noms en tapant la 1ère lettre

Re,

Si le but est uniquement de filtrer, il suffit de laisser le filtre en place :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ref As Range
Set ref = Intersect(Target.Cells(1, 1), [A1:D1])
If Not ref Is Nothing Then
  ref.Select
  Application.ScreenUpdating = False
  Me.AutoFilterMode = False
  ref.Offset(, 26).EntireColumn.ClearContents 'RAZ colonne auxiliaire
  If IsEmpty(ref) Then Exit Sub
  With Range(Cells(2, ref.Column), Cells(Rows.Count, ref.Column).End(xlUp))
    .AutoFilter 1, ref.Text & "*" 'filtre automatique
    .SpecialCells(xlCellTypeVisible).Copy ref.Offset(, 26)
    .AutoFilter 'désactive le filtre pour trier
    ref.Offset(, 26).EntireColumn.Sort ref.Offset(, 26), Header:=xlYes 'tri
    .AutoFilter 1, ref.Text & "*" 'replace le filtre
  End With
  If Not IsEmpty(ref.Offset(2, 26)) Then _
    SendKeys "%{UP}" 'affiche la liste de validation
End If
End Sub
Fichier (3).

Edit 1 : ajouté un tri sur la liste de validation et un test sur SendKeys.

Edit 2 : il faut désactiver le filtre pour pouvoir trier (je découvre).

A+
 

Pièces jointes

Dernière édition:
Re : Recherche de noms en tapant la 1ère lettre

Bonsoir le fil, bonsoir le forum,

Une autre proposition avec une UserForm. En fonction du texte édité la ListBox1 se remplie. Un double-clic sur un des éléments de la ListBox1 permet de récupérer les données dans les 4 textboxes. Il est ensuite possible de modifier une ou plusieurs données. Le clic sur le bouton Ok renvoie les données des textboxes dans le tableau et lance le tri alphabétique par rapport aux noms...
 

Pièces jointes

Dernière édition:
Re : Recherche de noms en tapant la 1ère lettre

Bonsour®
J'ai un fichier excel dans lequel j'ai des colonnes nom, prénom, adresse,...(un répertoire)
Je voudrais créer un bouton qui en le renseignant de la 1ère lettre m'afficherait les noms concernés afin de compléter une autre cellule correspondante dans le tableau.
(Tri comme le fait l'explorateur Windows, par exemple)

J2P

Utiliser une comboBox dont la propriété MatchEntry avec la valeur 0 -fmMatchEntryFirstLetter
 

Pièces jointes

Re : Recherche de noms en tapant la 1ère lettre

Bonjour Modeste geedee, le fil,

fmMatchEntryFirstLetter permet d'afficher le 1er item de la ComboBox qui répond au critère.

Mais il semble bien que J2P veuille tous les items concernés :

(...) qui en le renseignant de la 1ère lettre m'afficherait les noms concernés (...)

Edit : au temps pour moi Modeste, en répétant on récupère bien tous les items concernés !

Je ne connaissais pas ça, merci, c'est une solution très élégante.

PS : j'ai édité mon post #6 car le tri de la liste de validation ne se faisait pas avec le filtre en place.

A+
 
Dernière édition:
Re : Recherche de noms en tapant la 1ère lettre

Bonjour à tous,
Ravi de voir ces réponses.
Les fichiers de job75 fonctionnent, de même que celui de Modeste geedee ;

D’ailleurs l’un et l’autre me conviennent, ma recherche passe toujours par le nom.
J’ai adapté le fichier de job75 au mien qui comporte 560 lignes et 15 colonnes, et ça marche.
Celui de Robert, me donne « erreur 94 » ???
Petit truc : Les 3 me donnent une alerte de sécurité et me demantdent d’activer le contenu.
Je vous remercie tous pour votre aide, super !
J2P
 
Re : Recherche de noms en tapant la 1ère lettre

Bonjour Fo_rum 🙂

Tu vas au plus simple, mais il y a encore plus simple et surtout plus rapide.

Appliquer le filtre automatique sur la colonne C et basta :

Code:
Private Sub TextBox1_Change()
  Application.ScreenUpdating = False
  Me.AutoFilterMode = False
  If TextBox1 = "" Then Exit Sub
  Range("C1", Cells(Rows.Count, 3).End(xlUp)).AutoFilter 1, TextBox1 & "*"
End Sub
A+
 

Pièces jointes

Re : Recherche de noms en tapant la 1ère lettre

Bonsoir job 75,
Le fichier ListePar Initiales va très bien tel que je l'ai reçu.
Par contre, j'ai un soucis pour rajouter des colonnes...

Lorsque je change le C1 en N1 (par exemple), ça ne marche pas.
J2P
 
Re : Recherche de noms en tapant la 1ère lettre

Bonsoir,

@Job : merci pour le retour optimisé 🙂 et je permets de répondre.

@J2P : as-tu bien changé les 2 lettres ?

Private Sub TextBox1_Change()
Application.ScreenUpdating = False
Me.AutoFilterMode = False
If TextBox1 = "" Then Exit Sub
Range("N1", Cells(Rows.Count, "N").End(xlUp)).AutoFilter 1, TextBox1 & "*"
End Sub

j'ai mis "N" mais on pourrait se contenter de 14 (n° de colonne).
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
617
Retour