Bonjour Forum,
J'ai un fichier contenant 800 noms de compagnies. J'aimerais savoir si ce sont des compagnies privees ou publiques. Je peux extraire d'une autre base les noms de toute les compagnies publiques, mais le problemes est que ces noms ne correspondront pas exactement (et meme parfois pas du tout) a ceux de mon fichier de 800 noms. Pas possible d'utiliser un vlookup tout bete donc.
Y a t'il moyen d'ecrire une fonction qui compte le nom de caracteres en commun dans les 2 cellules (mais qui tient compte de l'ordre egalement). Par exemple une fonction a 3 parametres: le premier = la cellule avec le nom 1, le 2e = le nom de la cellule avec le nom 21, et le 3e = le niveau de precision souhaite: le nombre de caracteres en communs ET dans le meme ordre.
J'ai farfouille sur internet et j'ai trouve une fonction qui compte uniquement le nombre de lettres en communs:
Pas mal, mais ce n'est pas exactement ce que je cherche...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Option Explicit Function ComparerLettres%(A$, B$) Dim i%, n%, tmp$, c As New Collection If Len(A) > Len(B) Then tmp = A: A = B: B = tmp For i = 1 To Len(A) tmp = Mid$(A, i, 1) On Error Resume Next c.Add tmp, tmp If Err.Number = 0 Then n = n - (InStr(1, B, tmp) > 0) On Error GoTo 0 Next i ComparerLettres = n End Function
Une idee pour integrer l'ordre egalement?
Merci
Nianko
Partager