Vérification nom prenom date de naissance

compteabdou

XLDnaute Nouveau
Bonjour tout le monde,

j'ai une base de données sur un fichier Excel qui contient des informations sur des personnes (Nom, Prénom, Date de naissance...etc).

A chaque fois je reçois des fichiers Excel qui contiennent aussi des informations sur des personnes (Nom, Prénom, Date de naissance...etc). je dois vérifier l'existence de ces personnes dans ma base de données.

pour cela je dois effectuer une vérification via le filtre sur les colonnes concernées (soit Nom, Prénom ou date de naissance). et cette vérification est fastidieuse puisque je la fais sur les personnes un par un, sachant que la plupart du temps je tombe sur des personnes identiques mais avec une différence légère dans le Nom ou le Prénom (cela est considéré comme existant).

est ce qu'il y a une méthode pour faire cette vérification dans un seul coup par macro.

Le fichier joint peut clarifier le problème.

Merci.
 

Pièces jointes

  • Exemple Liste A vérifier.xlsx
    28.3 KB · Affichages: 138

Gardien de phare

XLDnaute Accro
Re : Vérification nom prenom date de naissance

Bonjour,

Pb techniquement facile à résoudre sur des correspondances exactes mais impossible à résoudre sur des "différences minimes". C'est quoi une différence minime ? Ca s'arrête où ? Il existe un algorithme nommé SOUNDEX qui s'applique à l'anglais et permet de regrouper des termes selon leur ressemblance phonétique. Malheureusement, il a été conçu pour l'anglais et se révèle peu performant pour le français.

Pour gérer des fichiers de plusieurs centaines de milliers d'individus (parfois plusieurs millions), je peux te dire que les homonymies parfaites (nom + prénom) sont nombreuses et que parfois la date de naissance (surtout entachée de différences minimes comme tu le précises) est même insuffisante pour discriminer deux individus ! Alors comment faire ?

Quand à la commune de naissance, il y a aussi des doublons, par exemple il y a 5 communes différentes en France qui s'appellent Saint-Nazaire !
 

MJ13

XLDnaute Barbatruc
Re : Vérification nom prenom date de naissance

Bonjour à tous

je peux te dire que les homonymies parfaites (nom + prénom) sont nombreuses et que parfois la date de naissance (surtout entachée de différences minimes comme tu le précises) est même insuffisante pour discriminer deux individus ! Alors comment faire ?

Quand à la commune de naissance, il y a aussi des doublons, par exemple il y a 5 communes différentes en France qui s'appellent Saint-Nazaire !

Quand même, la chance que 2 individus aient le même nom et prénom et nés le même jour, statistiquement cela doit être proche de 0. Alors, si on prend en plus la commune de naissance, j'vous raconte pas :eek:.
 

compteabdou

XLDnaute Nouveau
Re : Vérification nom prenom date de naissance

Bonjour tout le monde,

je vous remercie de vos réponses,

vous avez raison, il y a toujours la possibilité d'avoir des doublons, mais est ce qu'il y a une méthode de récupérer ces doublons, au moins je minimise la recherche.

Merci.
 

compteabdou

XLDnaute Nouveau
Re : Vérification nom prenom date de naissance

RE,

je ne suis pas vraiment pro en programmation mais est ce que cette idée est réalisable:

on compare le nom recherché avec les noms qui existent dans la base de données et si on trouve le nombre de lettres qui se ressemblent est supérieur à 50%, on considère que c'est le nom recherché.
et pour être plus sûr on compte aussi les ressemblances le prénom et la date de naissance et pourquoi pas sur les communes.

Et dans ce cas même s'il y a des doublons, c'est pas grave, on a beaucoup minimisé la recherche.

Voila mon idée je ne sais pas si c'est faisable ou non.

Merci.
 

Gardien de phare

XLDnaute Accro
Re : Vérification nom prenom date de naissance

Bonsoir,

L'approche des correspondances doit se faire sur la prononciation plus que sur le nombre de lettres communes. Tu pourrais tester sur ton fichier le classeur téléchargeable sur ce lien qui est la mise en œuvre de l'algorithme SOUNDEX dans Excel.

Si les résultats se révèlent satisfaisant pour toi, on verra si on peut l'adapter à ton besoin. Ici, il y en a qui sont capables de le faire, moi pas sur :)

SOUNDEX, je l'ai testé sur des noms de communes en France et les résultats sont assez bons, sur des noms de famille, c'est moins sur compte tenu de son origine anglaise.
 

MJ13

XLDnaute Barbatruc
Re : Vérification nom prenom date de naissance

Bonjour à tous

J'ai pas testé SoundHex :eek:, mais une question et une idée me passe par la tête :confused:.

Compteabdou: peux-tu expliquer pourquoi, il y a des différences minimes sur les noms, ou autre champs et y'a t'il des champs sans erreurs?

Une idée:eek:: On pourrait calculer pour chaque lettre avec son numéro ASCII et faire la somme des lettres et des champs pour voir si il y en a qui sont identiques ou proche au niveau de la somme.
 

Gardien de phare

XLDnaute Accro
Re : Vérification nom prenom date de naissance

Bonjour tous, MJ
Ton idée est intéressante mais... il faut faire le rapprochement entre prononciation phonétique et écriture, et ce quelle que soit la langue. En général, la première lettre d'un nom est juste. Ça se gâte ensuite : "o" ou "au" ? "ai" ou "è" etc. Les lettres doubles doivent être réduites à une seule comme le fait soundex. La dernière lettre d'un nom français ne se prononce en général pas (Dupont "t" ou Dupond "d") sauf quand il s'agit d'un nom d'origine sud de la France ou de l'Europe (en particulier le "s") comme le mien qui se termine par "as" ce qui me vaut, au nord de la Loire, d'être souvent orthographié en "asse". Quand au "au" de mon nom de famille, je ne te dis pas combien de fois il devient un "o" (toujours au nord de la Loire). En plus, l'informatique a compliqué les choses avec les erreurs liées à la proximité des lettres sur un clavier...
Je traite souvent ce genre de problème pour le taf et j'utilise un logiciel qui intègre en natif l'algo Soundex (soft US). A une époque, j'ai même essayé de développer un Soundex adapté au français mais mes connaissances en linguistique sont trop minces pour arriver à un résultat intéressant.
S'il y a des linguistes qui traînent par ici, ce serait intéressant de bosser là-dessus et de construire un algo. On pourra ensuite le reprendre dans le langage qu'on veut (Vba, R, Sas, etc.).
 

david84

XLDnaute Barbatruc
Re : Vérification nom prenom date de naissance

Bonsoir,
personnellement je pense qu'il n'est pas possible de trouver une solution automatisée à 100%. Je ferais donc une macro me permettant une recherche que je pourrai paramétrer et adapter, quitte à la lancer plusieurs fois et sachant qu'au bout du compte je devrais à certains moments faire un choix manuel parmi les différentes lignes ramenées par ma recherche.
Je pourrais ainsi commencer par une recherche complète sur nom+prénom+date de naissance+lieu de naissance+adresse

Pour les recherches qui n'auraient pas abouties, je relancerai à nouveau avec par exemple nom+date de naissance+lieu de naissance+adresse ou prénom+date de naissance+lieu de naissance+adresse.

Pour les lignes encore trouvées je relancerai avec 3 paramètres date de naissance+lieu de naissance+adresse.

Si j'ai bien suivi, on est au moins sûr de ces 3 paramètres, donc si c'est le cas, la macro proposerait à l'utilisateur l'ensemble des lignes correspondant à ces 3 critères et charge à ce dernier de sélectionner la bonne.

Sur le principe, on pourrait ne pas s'arrêter à 3 critères et pousser à 2 critères mais bon, le principe est le même : au bout du compte et ce pour les lignes non ramenées, ce serait à l'utilisateur de finir le travail en sélectionnant (ou non) la ligne correcte parmi toutes celles répondant aux 3 critères de recherches.
Voilà a priori mon idée de base.
A+
 

MJ13

XLDnaute Barbatruc
Re : Vérification nom prenom date de naissance

Bonjour à tous

On peux essayer de se rapprocher du nombre de lettres bien placées avec un code de ce type:

Code vb:
Sub Extrait()
Range("l2:L10000").ClearContents
Sheets("Extraction").Select
Range("_BD").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"_CR"), CopyToRange:=Range("_ZD"), Unique:=False
End Sub
Sub verif_Pourcentage_Juste()
NBcars = 0: NBlettre = 0
For i = 2 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To 5
nac = Cells(i, j)
nat = Sheets("Critère").Cells(3, j)
nbLC = Len(nac): nbLT = Len(nat)
For k = 1 To Len(nac)
NBcars = NBcars + 1
If Mid(nac, k, 1) = Mid(nat, k, 1) Then NBlettre = NBlettre + 1
Next
Next
Cells(i, 12) = Int((NBlettre / NBcars) * 100)
NBcars = 0: NBlettre = 0
Next
End Sub
 

Pièces jointes

  • Exemple Liste A vérifier.xlsm
    69.4 KB · Affichages: 87

compteabdou

XLDnaute Nouveau
Re : Vérification nom prenom date de naissance

Compteabdou: peux-tu expliquer pourquoi, il y a des différences minimes sur les noms, ou autre champs et y'a t'il des champs sans erreurs?

Bonjour tout le monde,

Désolé pour ma réponse tardive,
Il y a des différences minimes soit dans le nom ou prénom, puisque l'erreur humaine est toujours présente, mais la raison principale est que chacun écrit le nom ou le prénom de sa façon ce qui peut engendrer ce problème. et pour les champs sans erreurs, non ça n'existe pas sinon ça sera facile pour résoudre le problème.

Pour la solution SoundHex, je pense que dans mon cas ça ne sera pas une solution efficace, et je préfère une solution basée sur le nombre de lettres identiques entre les champs.
je vais essayer de comprendre le fonctionnement du code de XLDnaute Barbatruc et je reviens à vous.

Merci.
 

compteabdou

XLDnaute Nouveau
Re : Vérification nom prenom date de naissance

Re,

je n'ai pas bien compris le code mais est ce que vous pouvez personnaliser le code pour récupérer le résultat comme dans la feuille Résultat et pour tester je change seulement la liste A vérifier (Nombre de personnes ou l'écriture des nom et prénom).

je cherche au moins à minimiser ma recherche.

Merci.
 
Dernière édition:

Discussions similaires

Réponses
6
Affichages
442

Statistiques des forums

Discussions
312 504
Messages
2 089 089
Membres
104 027
dernier inscrit
Luc ECODIS