recherche dans une liste a partir des premieres lettres

matou59

XLDnaute Junior
Bonjour,
Je joins un fichier zip qui expliquera mieux ce que je vodrais faire
A partir d'une liste de villes, rechercher une ville en donnant la 1ere lettre de son nom ou les suivantes
Quelle methode serait la plus simple pour moi car je ne connais pas visual basic mais en m'expliquant peut etre que je comprendrai...

merci

Cordialement
 

Pièces jointes

  • recherche_ville.zip
    28.9 KB · Affichages: 166

C@thy

XLDnaute Barbatruc
Re : recherche dans une liste a partir des premieres lettres

OK, ça marche presque, reste plus que l'année (colonne D) à récupérer...

j'y suis presque... mais pas encore!
 

Pièces jointes

  • recherche_noms(311).xls
    76.5 KB · Affichages: 128

JCGL

XLDnaute Barbatruc
Re : recherche dans une liste a partir des premieres lettres

Bonjour à tous,

Ta plage ListeCP est mal définie, je crois :

Capture 1.png

Bise
A+ à tous

Edition : Oups... Entre tes éditions et tes recherches qui font avancer tes demandes, j'ai loupé des épisodes. Re Bise
 

Pièces jointes

  • Capture 1.png
    Capture 1.png
    8.8 KB · Affichages: 84
  • Capture 1.png
    Capture 1.png
    8.8 KB · Affichages: 83

job75

XLDnaute Barbatruc
Re : recherche dans une liste a partir des premieres lettres

Bonsoir C@thy, salut Jean-Claude :)

A prendre des codes compliqués sur le forum tu t'exposes à des difficultés d'adaptation :)

Cette macro, nettement plus simple, est mieux adaptée à ton problème :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'---la feuille BD doit avoir été triée---
Dim cel As Range, t$, lig As Variant, h&
Set cel = [A2] 'à adapter éventuellement
If Not Intersect(Target, cel) Is Nothing Then
  cel.Select
  t = cel & "*"
  With Sheets("BD")
    lig = Application.Match(t, .[B2:B65536], 0)
    If IsError(lig) Then
      ThisWorkbook.Names.Add "Liste", ""
    Else
      h = Application.CountIf(.[B2:B65536], t)
      ThisWorkbook.Names.Add "Liste", .Cells(lig + 1, 2).Resize(h)
    End If
    cel(1, 2) = ""
    lig = Application.Match(cel, .[B2:B65536], 0)
    If IsNumeric(lig) Then cel(1, 2) = .Cells(lig + 1, 4)
    If h Then If cel <> "" And cel <> [Liste].Cells(1) Then _
      SendKeys "%{UP}" 'facultatif, déroule la liste
  End With
End If
End Sub
Ton fichier complété.

A+
 

Pièces jointes

  • RechercheNoms(1).zip
    110.8 KB · Affichages: 65
Dernière édition:

C@thy

XLDnaute Barbatruc
Re : recherche dans une liste a partir des premieres lettres

Très super génial, Gérard.

Oui c'est beaucoup plus simple!

Cela dit, j'avais fini par y arriver...pas optimisé mais ça marchait.

Maintenant c'est nettement mieux!

Très sympa aussi le code postal!

Juste une question :

c'est pas possible a faire dans un textbox ce truc : taper le début et quand il trouve
il te donne le nom dans la listbox a coté...
(Tu te souviens mon usf où tu m'as dit que les 26 lettres c'était du gadget...)

C'est juste une question car il faut que je réfléchisse comment faire des recherches mult-critères
mais non croisés par ex. soit ils recherchent le début du nom et on affiche tous les noms dans la listbox pour consulter les fiches, soit ils recherchent sur la carrière, soit le cursus (Ena etc...) soit l'adresse professionnelle

j'ai posé une question sur ce fil https://www.excel-downloads.com/thr...-les-cellules-contenant-le-mot-bidule.142961/ et j'ai eu une excellente réponse de Zon,
maintenant j'essaie de regrouper le tout pour trouver une solution d'interrogation de ma base par mots- clés
Je pense à un truc du genre bouton radio souhaitez-vous rechercher sur :
le nom
la carrière
Le cursus
etc...
ce qui m'indiquera dans quelle colonne chercher le mot-clé

Un grand merci a toi, ton code est super et va bien me servir.

See you soon ;-)

Bisous

C@thy
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : recherche dans une liste a partir des premieres lettres

Re C@thy,

Je vais te dire ce que je pense.

Tu sembles une adepte des gadgets, voire des usines à gaz.

Ici une simple liste de validation en A2 serait bien suffisante.

Faire une recherche manuelle dans cette liste classée alphabétiquement serait très simple.

Et en B2 une formule avec RECHERCHEV ferait l'affaire.

Sur ce grosses bises et je te souhaite une bonne nuit.
 

Discussions similaires

Statistiques des forums

Discussions
312 682
Messages
2 090 891
Membres
104 689
dernier inscrit
phlentier