Reparation ou Amelioration Fichier

jathur

XLDnaute Nouveau
Bonjour

Je me permet de vous soumettre ce fichier ( Noms et Numéro de Tel effacé ) car il ne fonctionne plus au niveau de la recherche.

Principe du fichier : Gestion de la Fidelité client

Informations donnant lieu a recherche : Nom - Prénom -Telephone

Informations pour calcul de la fidélité ( 5% du montant des 5 achats cumulés a déduire sur le 6eme )

Probleme rencontré:

La recherche est hasardeuse: Des noms sans caractère recherché sortent

Je souhaiterai pouvoir rechercher avec quelques Caractere seulement:

Par exemple : Nom Daniaud - En tapant Dan j'aimerai pouvoir trouver Daniaud - Dania - Daniel ......

Je vous remercie par avance de l'aide que vous voudrez bien m'apporter.
 

Pièces jointes

  • fidelite incandescence.xlsm
    49.9 KB · Affichages: 42
Dernière édition:

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
Quoi, Ou , Comment veux tu entrer tes données ?
Sinon j'ai un petit prog vba avec USF qui te fais rapidos ta recherche : tu commences à taper dans une box ; en // dans une liste (listbox) s'affiche des noms
ex : tu as dans ta base Bourdon ; Boulin; Bourrier; Boulanger .. etc
tu cherches Boulanger : tu commences à taper Bou , tout s'affiche , puis Boul , là dans ta liste ne reste plus que Boulin Boulanger : clic sur ton nom et tu affiches ce que tu veux ou tu veux
La macro est :
Code:
Set d1 = CreateObject("Scripting.Dictionary")
  If Me.TextBox1 = "" Then
     tmp = ""
  Else
      tmp = Me.TextBox1 & "*"
  End If
'  tmp = Me.TextBox1 & "*"
  For Each c In a
   If c Like tmp Then d1(c) = ""
  Next c
  Me.ListBox1.List = d1.keys
Il faut juste définir "a" qui est ta plage de noms avec une formule DECALER
Si cela te dit ?
 

job75

XLDnaute Barbatruc
Bonjour jathur, riton00, herve62,
Code:
Sub Filtrer()
If ActiveSheet.ListObjects.Count = 0 Then Exit Sub 'sécurité
[K6] = "=AND((A6=A$3)+ISBLANK(A$3),(B6=B$3)+ISBLANK(B$3),(C6=C$3)+ISBLANK(C$3))"
ActiveSheet.ListObjects(1).Range.AdvancedFilter xlFilterInPlace, [K5:K6]
[K6] = ""
End Sub

Sub Effacer()
[A3:C3] = ""
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
End Sub
A+
 

Pièces jointes

  • fidelite incandescence(1).xlsm
    55.6 KB · Affichages: 38

job75

XLDnaute Barbatruc
Re,

Si l'on veut faire la recherche sur les premières lettres des noms ou prénoms :
Code:
[K6] = "=AND((LEFT(A6,LEN(A$3))=A$3)+ISBLANK(A$3),(LEFT(B6,LEN(B$3))=B$3)+ISBLANK(B$3),(C6=C$3)+ISBLANK(C$3))"
Fichier (2).

A+
 

Pièces jointes

  • fidelite incandescence(2).xlsm
    55.6 KB · Affichages: 46

Statistiques des forums

Discussions
312 169
Messages
2 085 928
Membres
103 045
dernier inscrit
AP78