Fusion de doublons avec fonction MATCH et gestion d'erreur

tkd2009

XLDnaute Nouveau
Bonjour,
je vous soumet un casse tête que je n'arrive pas à solutionner.
Dans le fichier joint, j'ai un tableau donnant des valeurs à des noms d'individus (colonne A) en fonction de marker (ligne 2) sur la feuille "Genotypage_brut".
Ce tableau comporte des doublons avec des valeurs parfois différentes.
mon objectif est de fusionner les doublons dans un nouveau tableau sur la feuille "test_fusionne".
J'ai déjà un début de macro qui formate le tableau voulu et met en colonne A des noms unique d'individu.
Maintenant je voudrais avec une fonction MATCH (est ce la bonne approche?) transférer les données comme suit:

Si la valeur source = 0 ou cellule vide alors on ne copie pas
si cellule de destination est vide alors on copie la valeur source(pas d'erreur)
si cellule de destination =0 alors on copie et donc remplace par la valeur source
si cellule de destination =valeur identique à la valeur source alors on ne copie pas la valeur source ou on copie (le plus simple...)
si cellule de destination =valeur >0 et différente de la valeur source alors on concatene les 2 valeurs et on colorie la cellule en jaune.

Comment faire ce transfert de données avec conditions?

En vous remerciant pour vos futures lumières.
 

Pièces jointes

  • Test AR.xls
    41 KB · Affichages: 73

tkd2009

XLDnaute Nouveau
Re : Fusion de doublons avec fonction MATCH et gestion d'erreur

J'ai effectivement réalisé ce matin que le dico ne fonctionnait pas avec des valeurs purement numériques (j'ai encore appris un truc...).
Mes "samples names" peuvent être texte et/ou numériques, quoi qu'il en soit ta macro fonctionne parfaitement avec des valeurs numérique et/ou texte.
Un grand merci!
Le seul bug que j'ai détecté est lorsque 2 samples names sont identiques avec une différence dans le format (1 en minuscule et l'autre en majuscule), ils ne sont pas fusionnées et celui en minuscule se retrouve en bas avec les samples "uniques".
Cela est probablement du au fait que Ucase ne s'applique pas sur la feuille "secondaire".

Bref, ça marche au poil, la version avec dictionnaire/Ucase ou celle-ci, je te laisse le choix des armes, la plus fiable et sure sera la mieux, j'adapterai par la suite le format de mes samples names en fonction de ce que tu me proposera.
Pour le tri, un simple tri croissant comme dans l'exemple manuel serait parfait.
Les "M<-->male" seront corrigés en amont donc c'est pas un problème.

Un grand merci pour ta patience et ton coup de patte !
 

tkd2009

XLDnaute Nouveau
Re : Fusion de doublons avec fonction MATCH et gestion d'erreur

Oup! grosse bétise de ma part: ça marche pas!
En regardant plus finement je me suis rendu compte que les valeurs concaténées n'étaient pas les bonnes.
Exemple le sample 11 devrait contenir un 231#233 mais à la place il y a un 231#237
Si je supprime le sample 4 qui est en début de tableau et unique on corrige le tir...jusquà retomber sur un sample unique et les fusions se redécalent....la fonction MATCH doit pas Matcher correctement :(
 

Modeste

XLDnaute Barbatruc
Re : Fusion de doublons avec fonction MATCH et gestion d'erreur

Re,

Tu apprendras jeune sauvageon, que mon dernier cheveu y est passé ... ceci dit, comme tu avais des nombres, cette fois-ci, j'ai fait l'impasse sur le Ucase (ils sont restés là où je n'ai rien modifié et je les ai "omis" dans le reste) "yapûka" modifier la ligne 29 en
Code:
If Not listeNoms.exists("" & UCase(s.Value)) Then
... en tout cas essaie ça "en situation" et dis-nous si c'est bon

Pour le tri, je verrai s'il vaut mieux trier au départ ou à la fin ... je risque fort de faire un tri "pas tiré par les cheveux" ... en cas de gros volume, il faudra peut-être chercher quelque chose de plus "sophistiqué" (je te laisserai le soin de voir du côté des tris dichotomiques, à bulle ou Dieu sait quoi d'autre :p)

Edit: je repasserai voir plus tard pour ton dernier message
 

tkd2009

XLDnaute Nouveau
Re : Fusion de doublons avec fonction MATCH et gestion d'erreur

C'est beaucoup mieux avec le Ucase, si il y a un "TOTO" dans un tableau et un "toto" dans l'autre, tout semble rouler.
(Je te parle pas des TOTO et toto dans un même tableau, car je sais pas ce que tu vas bien pouvoir t'arracher...et de toute façon chaque tableau n'est pas censé contenir de doublons)

Donc au final les différences de lectures sont correctement identifiées mais les valeurs concaténées ne le sont pas.
Cela semble correspondre à "valeur brute # valeur secondaire décalée de 1 vers le haut" si il y avait avant un sample name unique.

Bon week end quand même ;)
 
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Fusion de doublons avec fonction MATCH et gestion d'erreur

Bonsoir,

Bon week end quand même
Excel ne connaît pas les week-ends, ni les jours fériés ;)

Le décalage d'une ligne n'était pas bien difficile à repérer (comme tu avais fait la bonne hypothèse, je te laisse chercher un peu, même si c'est corrigé dans cette version)
Les données sont triées et entourées de bordures fines.

... tu nous diras après tests "grandeur nature"
 

Pièces jointes

  • test comparaison(2).xls
    71 KB · Affichages: 42

tkd2009

XLDnaute Nouveau
Re : Fusion de doublons avec fonction MATCH et gestion d'erreur

Bonjour, je remonte le sujet pour un petit retour sur expérience et une question...
Coté utilisation, cela fonctionne à merveille même si c'est très long (plusieurs minutes pour 1000 "sample names"), j'ai rajouté un bout de code pour sortir de la macro si il y a un nom au départ sous forme de nombre puisqu'elle n'aime pas les données numériques.

J'aurai un souhait d'amélioration mais je suis pas sur que cela soit possible: j'aimerai conserver la couleur des valeurs qui sont fusionnées.
Existe t il une syntaxe qui permet lors de l'ajout d'une valeur à un dictionnaire de faire suivre sa couleur?
Si non, est il possible de traiter cette information de couleurs comme une donnée à par entière avec une autre dictionnaire?:p

Merci.
 

Pièces jointes

  • test fusion.xls
    41.5 KB · Affichages: 33

Discussions similaires

Statistiques des forums

Discussions
312 356
Messages
2 087 564
Membres
103 594
dernier inscrit
edm