Comparer deux colonnes
Résoluje pense que cette question a été posée plusieurs mais je n'ai pas trouvé de réponse.
Mon problème est le suivant je voudrais comparer deux listes qui viennent de deux extractions différentes dont l'écriture des références n'est pas toujours identiques.
j'ai fait essayer avec la fonction recherchev mais bien évidemment quand la valeur n'est pas identique j'ai N/A.
j'ai essayé de bricoler une formule avec recherchev et subtitue mais ça ne marche pas.
voici les exemples que j'ai
AFC105 OU AFC-AN105 OU AFC105-00 OU AFC105000
AFC105-6-02 AFC105602 OU AFC10562
J'espère que cela suffira ?
cdlt
32 réponses
Plusieurs utilisateurs cherchent à comparer deux listes issues d'extractions où les références ne sont pas écrites de façon identique, rendant VLOOKUP inopérant lorsque les valeurs ne coïncident pas. Des propositions convergent vers l'unification des formats par normalisation des références, l'idée d'ignorer les tirets, les zéros et les fragments comme AN, ou d'utiliser une macro ou une fonction personnalisée. En pratique, les échanges évoquent des approches complémentaires, la création d'une colonne de transformation ramenant chaque référence à sa forme et une règle différenciant les cas AN selon le contexte. D'autres éléments évoquent des ressources et des fichiers illustrant l'automatisation par macros ou fonctions personnalisées, sans conclure sur une solution et en laissant ouvert le choix de la méthode selon le contexte.
-
Tu selectionnes ta plage, par exemple A2:A2000
MFC nouvelle regle Applique formule et tu mets :
=A2<>A1
et choix format ecriture bleue
Cdlmnt
-
Elle ne peut te servir à rien ailleurs puisque elle a été faite pour la nouvelle feuille avec références triées et se base sur les colonnes des références expurgées des tirets et des 0 de départ pour attribuer la couleur bleue à celle en tête de liste et en en colonne A
Par contre si tu as un fichier avec dans une colonne des références bonnes qui ne sont pas à expurger et que tu veuilles mettre en bleu chaque fois qu'une référence change tu le fais par MFC il n'y a pas besoin de la macro
-
Bonjour
j'ai essayé de partir d'un autre fichier mais la macro de tri en bleu ne fonctionne pas. toutes les écritures bleues disparaissent sauf une qui se met en tête de colonne.
1) copie du module 1 et collage dans nouveau fichier en insérant module 1
2) copie des macros et collage dans la feuille 1 nommé "Essai"
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
a = Target.Font.ColorIndex
MsgBox a
End Sub
----------------------------------------------------------------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
que dois je faire ?
cdlt-
Bonjour
La macro utile est la macro appelée bleue
Elle doit être placée dans le module et s'applique à partir de la feuille essai(3) qui a les références classées en ordre alpha et les colonnes F G H (référence à cette dernière dans la macro) Elle traite les références qui ont comme code couleur 5 (le bleu du fichier que j'avais)
La macro suivante liée à la feuille m'a simplement servi à obtenir justement le bon code couleur par double clic dans une cellule avec écriture bleue
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
a = Target.Font.ColorIndex
MsgBox a
End Sub
1° vérifier le bon emplacement de la macro
2° vérifier que la feuille où tu veux l'appliquer est bien complète avec colonnes FGH et tri
3° vérifier avec la macro du double clic à partir d'une cellule que c'est bien le même code couleur de bleu (sinon remplacer tous les 5 dans l'autre macro par le code renvoyé dans la boîte d e message)
Cdlmnt -
-
-
-
-
je te remercie beaucoup pour l'aide apportée.
cdlt -
J'en pense que tu devrais assez vite arriver à un résultat, il restera surement quelques cas particuliers à traiter au coup par coup
N'hésite pas à me demander pour les formules ou la macro s'il y a quelque chose d'obscur
Tiens moi au courant de toutes manières
Cdlmnt
-
tu as terminé ...........
il faut penser de la manière suivante pour ce tableau.
je pars de l'extraction des données en noires et j'insère les données bleues.
J'ai mis deux couleurs pour les différenciés + la rouge qui sont des identifiants qui ne sont connus ni de la liste noire et ni de la liste bleue, qui sont peut être obsolètes.
la première colonne contiendra les données noires brut (sans doublons) et la 2nd les donnée bleues brutes. ce qui sera inégales puisque aucune égalité entre les bleues et les noires au départ.
Au fur et à mesure du contrôle et des corrections d'écriture je devrais arriver à une égalité.
je pense que maintenant le dossier est clos ou je ne le clôture pas car je n'ai pas fini d'étudier toutes tes formules et surtout ta macro.
Qu'en penses tu ?
Cdlt -
En partant de la liste de correspondance des références de mon dernier fichier un essai ; certaines références ne sont pas trouvées :
https://www.cjoint.com/?0InuS264J7h
S'approche-t-on du but ?
Cdlmnt
-
N'y a t il pas moyen simplement, dès que le travail de contrôle est fait, de faire une table avec la 1er extraction puis de créer une 2nd table en donnant comme argument que ABC10902 = ABC109-02 et de la placer dans une autre colonne dans la 1er table le tout sans macro ? cette 2nd table sera créer manuellement.
Cdlt -
J'avoue que je m'y perd ! moins facile que pour toi qui est dans le bain!
Donc dans ton dernier fichier la colonne F serait presque la bonne, il suffirait de transformer toutes les références en dessous d'une bleue selon celle-ci (macro possible) mais certaines ne sont pas bleues comme ACU100-02 (en noir) ou AFB123 (en rouge) etc du coup je ne sais pas quoi et comment faire
Cdlmnt
-
Re,
Ta réponse n'est pas tout à fait ce que je pensais. de plus je pense que je n'ai pas été assez précis
Je joins un petit fichier qui modélise le final
https://www.cjoint.com/?3InrjHq8aug
cdlt -
Re
Dans feuil 1 j'ai par formule récupéré puis trié les différentes sortes de références
Dans feuil2 les ref de feuil1 ont été copiées puis suppression des doublons puis dans reprise par macro (refbleue) des codes couleurs de al feuilel essais (3)
En espérant que ce la te sera utile pour y voir plus clair
https://www.cjoint.com/?0Inpsg9tA5E
Cdlmnt
-
Re,
Je suis d'accord, ce n'est qu'après contrôle que j'alimenterais cette table donc au début cette table n'est pas figée.
Tu as effectivement d'autre cas comme ceux ci :
NCE12022 qui existe en NCE120-22 mais aussi NCE12022M;N.
Ces écritures n'ont pas d'existence dans la table bleue donc n'ont déclarées.
Mon travail est de corriger ces erreurs.
En final, toutes les références noires devraient avoir une correspondance en bleu sauf pour quelques cas.
Mon but est de chercher à passer toutes les écritures en bleues.
Au cours de mes recherches je pense que certaines références noires n'auront pas de correspondance car obsolètes, donc on ne les retrouvera pas dans la table bleue et elles seront supprimées
Ai je répondu à ta question ?
cdlt -
Re,
En fait il faudrait faire une table de correspondance avec dans une colonne les écritures noires possibles et dans la seconde colonne la bonne écriture bleue
Ensuite dans un fichier de base avec les données avec une RECHERCHEV il serait possible d'aller chercher la bonne écriture et de la faire inscrire dans une colonne à côté de l'autre par exemple
Cependant il ya des écritures noires sans écriture bleue exemple AHJ11001 et AHJ110-01 et ce n'est pas la seule, que faire dans ce cas ?
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein -
Bonjour
Pour te donner une idée du système. les données bleues et noires viennent de deux sociétés différentes et de logiciel différent. En plus les données bleues sont la base de référence. Les données noires devraient être identiques mais tu as pu t'en rendre compte ce n'est pas le cas. Quand mon travail sera fait je devrais me retrouver avec la même écriture d'identifiant entre le noir et le bleu.
dans le cas de :
ABC109-02 (en bleu) je vais contrôler que ABC10902 (en noir) est bien identique. si oui je vais remplacer ABC10902 par ABC109-02. et çà pour toutes les références qui me posent problème.
Ensuite quand j'aurais contrôlé l'ensemble des données du fichier "essais 3" je dois corriger dans un fichier toutes les erreurs relevées.
Peut être faudra t il alimenter au fur et à mesure une liste de ces identifiants (AFC109-02 = AFC10902; etc ...........) et qu'il les remplace.
Est ce suffisant ?
Cdlt -
Bonjour
Où veux tu remplacer les écritures noires ? dans la colonne A ?
Cdlmnt
-
bonjour,
Ok c'est fabuleux.
Je voudrais te remercier pour l'aide que tu m'as apporté. Evidemment, ces remerciements s'adressent à tous ceux qui font vivre ce site.
Je vais pouvoir d'arrache pied travailler sur tableau pour mettre de l'ordre maintenant.
Au fur et à mesure de ce chemin, une question me tracasse maintenant comment injecter tous ces données pour corriger toutes les erreurs ( après des vérifs) en appliquant une règle unique.
Comment remplacer un identifiant en noir par l'identifiant bleu avec ces tirets et 0 sans macro?
Est ce que je dois créer un nouveau sujet ou tu peux y répondre ?
cdlt -
Re
https://www.cjoint.com/?0Imx44CaRlQ
La macro bleu appelée de n'importe quelle feuille place les données en bleu en tête de liste
Je l'ai appliqué à la nouvelle feuille essai 3 puis j'ai fait trier les valeurs par ordre alpha sur la colonne H pour remettre ensemble des valeurs comme AFC004 et AFC4
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein -
Re
le 2nd trié
ok
cdlt -
Re
Et moi je suis absent ce soir
Je regarderai en rentrant
Les écritures bleues le sont au départ (mises par toi), il faudrait si je comprends bien, reclasser (avec une macro) pour qu'elles apparaissent en tête de chaque liste ? mais sur quel fichier celui de départ où sur le 2nd trié par ordre alphabétique (je penche pour celui là )
Confirmes moi si possible
Résultat dans la nuit ou demain
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein -
re
En fait tout ceci c'est des erreurs d'écriture et des règles différentes de chaque côté.
la 1er met des "-" et l'autre supprime les tirets donc tape la réf tout à la suite
maintenant pour les zéro ce n'est pas pareil ce n'est pas une histoire de règle c'est des erreurs de recopie de frappe. voilà ............
Quand tu examines le tableau, il me reste une erreur. je la corrigerais.
donc tout va bien .
juste un plus, pentes-tu qu'il soit possible de mettre les écriture qui sont en bleu juste avant le détail ? quand elles existent
CAP10002 2 +0 la réf CAP10002 est en bleu
CAP10002 SST 2 (détail)
je suis obligé de partir je reviens vers 20h
CDLT
- 1
- 2