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:

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
Pas mal, mais ce n'est pas exactement ce que je cherche...

Une idee pour integrer l'ordre egalement?

Merci

Nianko