Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

recherche dans une liste a partir des premieres lettres

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

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

Re : recherche dans une liste a partir des premieres lettres

bonjour hasco
je suis désolé mais je ne comprend pas grand chose avec le fichier que vous m'avez envoyé.
En plus je n'arrive pas a extraire le fichier macro complementaire.
Excusez moi mais je suis vraiment largué quand on me parle de VB

Il y a peut etre un autre moyen de m'expliquer ou carément de faire cette application en utilisant mon fichier
merci
 
Re : recherche dans une liste a partir des premieres lettres

Re,

Désolé mais il n'y a pas de moyen 'simple' sans vba (et même avec) pour faire ce que tu demandes. Et vba ne s'explique pas en 2 phrases et quelques minutes. De plus il n'est pas dans la politique de la maison de faire des applications clefs en main.

A+
 
Re : recherche dans une liste a partir des premieres lettres

Hasco je n'ai pas demandé a ce qu'on résolve mon probleme en me donnant "bétement" la solution.
Non, j'ai choisi ce petit exemple simplement pour connaitre la maniére dont il faut s'y prendre.
Votre reponse en m'envoyant votre fichier est certainement tres tres bien mais trop complexe pour moi.
En y joignant mon fichier j'ai pensé que ce serait plus simple pour vous de resoudre le probleme mais bien entendu avec qq explications.
Je me doute bien qu'il faille passer par VB pour resoudre cela et je sais bien que vous n'allez pas m'apprendre le VB il y a des stages pour cela (bien qu'a 60 ans c'est un peu tard) ,, mais j'aime bien aller déchiffrer les instructions VB ou tout a moins j'essaie.
Et c'est comme cela que j'apprend...(c'est mon dada en retraite) en commencant par un probleme simple on arrive a resoudre des problemes plus complexes.
Je ne vous en voudrai pas pour autant si vous voulez en rester là.
Merci quand meme.
 
Re : recherche dans une liste a partir des premieres lettres

RE,

Il y avait pourtant dans ton dernier post:
carément de faire cette application en utilisant mon fichier

en commencant par un probleme simple on arrive a resoudre des problemes plus complexes

Alors commence pas essayer quelque chose de plus simple et reviens avec tes difficultés concrètes.

A+
 
Re : recherche dans une liste a partir des premieres lettres

Je ne vois pourtant malheureusement pas plus simple que ça comme genre de probleme a moins que je me suis mal fait comprendre.
En expliquant simplement : a partir d'une liste de nom triée par ordre alphabétique il faut pouvoir aller choisir dans une liste deroulante tous les noms commencant par une lettre que l'on aura demandée
Par exemple je cherche DUPONT, je vais taper D et une liste deroulante me proposera tous les noms commencant pas D et je pourrai ensuite cliquer sur le nom desiré.
Par la suite on pourrai augmenter la difficulté en tapant les 2 premieres lettres pour avoir une liste plus restreinte
merci bonne journée
 
Dernière édition:
Re : recherche dans une liste a partir des premieres lettres

Bonjour matou59, salut Hasco 🙂

C'est un très joli problème que celui-là.

Je trouve qu'il n'est pas trop difficile à résoudre.

Et ma solution pas trop difficile à comprendre.

Voyez le fichier joint avec ce code de la feuille liste (clic droit sur l'onglet et Visualiser le code) :

Code:
Option Explicit '1)

Private Sub Worksheet_SelectionChange(ByVal Target As Range) '2)
Liste ActiveCell '3)
End Sub

Private Sub Worksheet_Change(ByVal Target As Range) '4)
Liste Target.Cells(1, 1) '5)
End Sub

Sub Liste(Target As Range) '6)
Static t As Single '7)
Dim test1 As Byte, test2 As Long, n As Long, CP As Variant
Dim txt As String, deb As Range, fin As Range
If Abs(Timer - t) < 0.1 Then Exit Sub '8)
With Sheets("villes")
  test1 = InStr("1-2-3", Len(Target)) '9)
  test2 = Application.CountIf(.[E2:E65536], Target & "*") '10)
  If Not Intersect(Target, [A2:A65536]) Is Nothing Then '11)
    t = Timer '12)
    Target.Activate '13)
    n = Application.CountIf(.[E2:E65536], Target) '14
    If n = 1 Then CP = Application.VLookup(Target, .[E2:F65536], 2, 0) '15)
    Target.Offset(, 1) = CP '16)
    If n > 1 Then MsgBox "Plusieurs villes portent ce nom, recherchez le code postal...", 48 '17)
    If test1 * test2 Then SendKeys "%{DOWN}" '18)
  End If
  txt = IIf(test1 * test2, Target & "*", "*") '19)
  With .[E2:E65536]
    Set deb = .Find(txt, LookIn:=xlValues, LookAt:=xlWhole) '20)
    Set fin = .Find(txt, SearchDirection:=xlPrevious) '21)
  End With
  .Range(deb, fin).Name = "Liste" '22)
End With
t = Timer '12)
End Sub

Il y a des commentaires pour toutes les lignes du code.

Les listes déroulantes s'ouvrent automatiquement pour 1, 2 ou 3 caractères entrés en colonne A.

A+
 

Pièces jointes

Re : recherche dans une liste a partir des premieres lettres

Salut Job,

Pour toi, j'en suis sûr ce n'est pas trop difficile mais pour quelqu'un qui semble ne rien maîtriser de vba c'est autre chose.

A+
 
Re : recherche dans une liste a partir des premieres lettres

Bonjour Matou, Ges, Job, Bertrand

Je connaîs l'utilitaire de Ges qui est très bien 🙂.

L'approche de Job et Bertrand me paraissent intéressantes en VBA et en formule (tu vois Bertrand, tu n'es pas si nul 😱).

Mais si, avec ces 2 dernières versions, je met une liste plus longue d'environ 38000 communes, il me retrouve au début les bonnes communes puis des communes en dehors de la demande. Comment y remédier ?

Merci d'avance 🙂.
 
Re : recherche dans une liste a partir des premieres lettres

bonjour tous
un exemple en passant par un userform

en complement on faire un peu mieux recherche par nom et par code postal
c'est le premier caractere selectionne qui determine la recherche si numerique recherche sur colonne F ou colonne E

rajouter dim z as byte
le code change trés peu

Code:
On Error Resume Next
Application.ScreenUpdating = False
If Not IsNumeric(Left(Tbx1, 1)) Then z = 1 Else z = 2
With Sheets("villes")
t = .Range("e3:f" & .Range("e65536").End(xlUp).Row)
Lbx1.Clear
x = 1
For i = 1 To UBound(t)
If Left(t(i, z), Len(Tbx1)) = Left(Tbx1, Len(Tbx1)) Then
ect...
 

Pièces jointes

Dernière édition:
Re : recherche dans une liste a partir des premieres lettres

re,

dans mon fichier, il faut que les noms des villes soient triés en ordre croissant et adapter le nom 'villes' que j'utilise dans les formules
 
Re : recherche dans une liste a partir des premieres lettres

Bonjour Bertrand, Michel,

(...) il me retrouve au début les bonnes communes puis des communes en dehors de la demande.

Si la liste des villes est triée alphabétiquement, il ne devrait pourtant pas y avoir de problème (commentaire 21 de mon code).

Edit : mes hommages laetitia, ça fait boule de neige, tout le monde se réveille 🙂

A+
 
Dernière édition:
Re : recherche dans une liste a partir des premieres lettres

Re , Bonjour Laetitia

Merci à tous, je reviendrai plus tard mais surement pas aujourd'hui.

Mais pensez toujours à faire un test en grandeur réelle :😱.

Bonne journée 🙂
 
- 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

Discussions similaires

M
Réponses
1
Affichages
1 K
B
Réponses
4
Affichages
2 K
benoitoleron
B
V
Réponses
8
Affichages
2 K
vanvanero
V
C
Réponses
12
Affichages
18 K
cybercopter
C
M
Réponses
0
Affichages
759
mduval60
M
0
Réponses
31
Affichages
29 K
blaugrana50
B
L
Réponses
2
Affichages
1 K
leshun
L
H
Réponses
1
Affichages
789
hammock
H
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…