Fusionner lignes doublons en conservant un max de données

Bonjour,

En cherchant sur le forum, je n'ai pas trouvé exactement la réponse que je cherchais.

Voici mon pb :

J'ai une base de données ds une feuille de calcul avec prénom, nom, adresse et qq autres colonnes.

Il y a des lignes en doublons mais qui n'ont pas toutes leurs cellules remplies de la même façon

Exemple

ABCDEFGH (prénom, nom, adresse, CP, ville, téléphone, profession, commentaire)

Jean Dupont 1, rue du village 85560 Laville boulanger

Dupont Laville pain bio

Jean Dupont 1, rue du village 85560 Laville 0251515151

Résultat souhaité :

Jean Dupont 1, rue du village 85560 Laville 0251515151 boulanger pain bio

Je précise que les données sont toutes dans leur bonne colonne : il y a donc des cellules vides dans certaines lignes

Il se peut aussi qu'il y ait des conflits liés par exemple à l'orthographe (1, rue du village ou 1 r village)

Y a t'il donc une fonction ou une macro qui :

  • compile automatiquement ces lignes en considérant tous les en-têtes de colonne (il n'y a pas que Dupont qui s'appelle Jean et/ou qui habite Laville...)
  • fasse ce travail en signalant les conflits

Ci-joint fichier exemple au format 2003

Merci d'avance !

Salut Duloise et bienvenue sur le Forum,

Combien de lignes as-tu au total ? Il me semble que ce serait déjà un bon renseignement afin de savoir dans quelle direction partir.

Je présume que tu ne peux pas mettre ton fichier réel sur le Forum ou bien ?

Si tu n'as pas des références exactes (comme ton exemple de rues écrites différemment), c'est pas gagné d'avance.

Cordialement.

Bonsoir Yvouille et merci de t'intéresser à cette question.

Mes fichiers sont effectivement assez gros, allant pour certains jusqu'à 800 lignes et une vingtaine de colonnes (je travaille sur 4 départements et j'ai un fichier par dept ; je peux bien sûr ne faire qu'un fichier en rajoutant une colonne dept).

Evidemment, le pb des conflits est crucial : dans le cas de cellules similaires mais pas strictement identiques, la fusion ne doit pas être possible mais comment faire pour détecter ces lignes et les signaler pour correction manuelle (en considérant par exemple un certain nombre d'autres cellules identiques ?).

A bientôt

Bonsoir

Je me suis un peu intéressé à ce problème, mais pour tester j'aurai besoin de plus de données ( un bonne vingtaine (ou plus) de lignes avec des similitudes)

A te lire

Bonsoir Duloise, Bonsoir Banzai,

Je pense que ça ne sert à rien que nous nous mettions à deux sur le coup ; je te laisse donc faire, Banzai.

Bonne soirée.

Bonsoir

@Yvouille

C'est dommage pour Duloise

Euh, ... non, je crois pas. Je suis persuadé que tu vas trouver une solution et moi je pourrais vaquer à d'autres occupations. Donc tout est bien ainsi, non

Cordialement.

Bonjour Banzai (et Yvouille s'il est toujours intéressé),

Voici un fichier bidon extrait de mes listings.

J'ai essayé de reprendre les différents cas de figure à résoudre (avec ou sans conflit).

Bon courage et merci !!

78bidon.xlsx (12.31 Ko)

Bonjour

A tester

@ Banzai

Ca fonctionne très bien dans notre fichier bidon. Beau travail !

Comment faire pour généraliser cette macro pour qu'elle soit exécutable ds tous les classeurs sans avoir à respécifier les dimensions des tableaux ?

Encore merci pour ton aide.

Bonjour

Des réponses dans le fichier/macro

Magnifique !

Merci !

@ Banzai 64

Bonjour Banzai,

Sur certains de mes fichiers, il y a une autre contrainte : plusieurs contacts pour une même société ce qui fait que le pourcentage de ressemblance est élevé (même adresse, etc).

A la première occurence de ce type, la macro a échoué, avec le message suivant :

"Erreur 1004

La méthode 'Range' de l'objet '_global' a échoué"

Le débogueur s'arrête sur la ligne :

Range("A" & NumLigne).Resize(1, NbCol + 1).Interior.ColorIndex = Coul

Et sur les 2 lignes en conflits (qui ne le sont en fait pas puisque ce sont 2 personnes différentes), une seule s'est colorée avec la macro.

Quid ?

A+

Bonjour

Sans pouvoir refaire l'erreur cela ne va pas être facile

Il faudrait le fichier en cause

Si tu peux savoir déjà quelles valeurs ont les variables NumLigne et Coul lors du plantage

A te lire

@ Banzai

Bonjour,

Voici un extrait de l'un de mes fichiers. Je pense que ça devrait te suffire.

Je ne suis pas assez calé en VBA pour comprendre d'où viens l'erreur.

Encore merci pour ton aide et ta patience !

Bonjour

Un oubli lors de la modification pour rendre la macro adaptable au nombre de colonne

Réparé (A tester)

@ Banzai

Ca marche bien mais je t'embête une dernière fois : peux-tu mettre les lignes en conflit telles quelles dans la feuille résultat avec leur couleurs respectives.

Ca me facilitera le tri final.

Merci et à+

Bonsoir

Non c'est trop compliqué à faire et je pense inutile

Car c'est dans la liste originale que tu dois modifier les infos si tu penses qu'elles désignent la même personne

Et ensuite relancer la macro

Si quelqu'un le fait pas de problème, mais (sauf... ) cela sera sans moi

OK merci et peut-être à bientôt sur le forum.

Bonjour

après avoir testé votre macro, j'ai un souci sur les dates récupérées elles changent de format

ainsi sur un tableau dont les dates sont au format j/m/a, les lignes complétées sur la feuille résultat sont au format m/j/a mélangées avec les données initiales de la ligne

Rechercher des sujets similaires à "fusionner lignes doublons conservant max donnees"