Comparaison de 2 textes

aragorn

XLDnaute Nouveau
Bonjour ,
Je travail sous VBA et je souhaiterai pouvoir comparer les chaînes de caractères de deux Noms propre.
Cette comparaison doit me renvoyer le nombre de différences entre les deux noms.
Les différences peuvent être de deux types:
_Comparaison entre le nombre de lettres de chaque nom
si écart > 1 alors 1 différence
_Comparaison de la position de chaque lettre dans le nom
si deux lettres ne sont pas à la même place alors 1 différence

Le but de cette commande est d'éviter les Doublons suite a des erreur de saisie.
(Je travaille dans ma liste en majuscule)
Exemple: Renier , Renyer doit renvoyer 0 différence

Merci à tous pour votre concours
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Comparaison de 2 textes

Bonjour,


-Format/MFC
=compare($A$1:$A$14;A1)
Code:
Function compare(champ, nom)
  m = 0
  For Each c In champ
    If Len(c.Value) = Len(nom) Then
      n = 0
      For i = 1 To Len(nom)
       If Mid(c.Value, i, 1) <> Mid(nom, i, 1) Then n = n + 1
      Next i
      If n < 2 Then m = m + 1
    End If
  Next
  If m > 1 Then compare = True Else compare = False
End Function


Code:
Function ListeDoublons(champ, nom)
  m = 0
  For Each c In champ
    If Len(c.Value) = Len(nom) Then
      n = 0
      For i = 1 To Len(nom)
       If Mid(c.Value, i, 1) <> Mid(nom, i, 1) Then n = n + 1
      Next i
      If n < 2 Then
        m = m + 1
        temp = temp & " " & c
      End If
    End If
  Next
  If m > 1 Then ListeDoublons = temp Else ListeDoublons = ""
End Function

JB
Formation Excel VBA JB
 

Pièces jointes

  • CompareNoms.xls
    36 KB · Affichages: 67

Discussions similaires

Réponses
6
Affichages
642

Statistiques des forums

Discussions
312 779
Messages
2 092 047
Membres
105 168
dernier inscrit
makari69