recherche de doublons entre deux colonnes et répartition en 3 colonnes

steph

XLDnaute Nouveau
Bonjour
Pour mon travail, je cherche à analyser des listes de gènes. Dans le cas simple, j'ai 2 liste de gènes (Genbank 1 et 2 du fichier joint). Je cherche à trouver de façon automatique lesquels se retrouvent dans les deux listes. Puis de créer automatiquement 3 colonnes: ceux uniques à Genbank1, ceux uniques à Genbank2, et ceux se trouvant dans les deux listes.

Pour compliquer un peu, à chaque gènes est associé une valeur (un nombre positif ou négatif). Cette valeur doit rester à côté du nom des gènes dans les 3 nouvelles colonnes. Dans le cas des gènes communs, il y a alors deux valeurs pour un même gène. J'a besoin de garder ces deux valeurs, peu importe la présentation (nouvelle colonne ou autre).

L'idée est que par la suite, j'ai juste à faire copier/coller de nouvelles listes pour les comparer entre elles, de façon automatique.

Certains d'entre vous auront peut être vu que je cherche à réaliser un diagram de Venn en quelque sorte.

Mes compétences en excel sont trop basiques pour y arriver seul.
J'utilise excel 2004 sous Mac

merci d'avance pour vos conseils
 

Pièces jointes

  • analyse gènes.xls
    39 KB · Affichages: 104
  • analyse gènes.xls
    39 KB · Affichages: 107
  • analyse gènes.xls
    39 KB · Affichages: 111

steph

XLDnaute Nouveau
Re : recherche de doublons entre deux colonnes et répartition en 3 colonnes

Bonjour Laetitia90 et Paritec
Vos solutions ne fonctionnent pas sur Mac, dommage.

Roger2327: il y a un bug: j'ai le message "erreur de compilation: impossible d'affecter à un tableau"

Pour le moment, il n'y a que le cas du message #8 qui fonctionne, mais il demeure un peu long. Avec quelques centaines de lignes (je peux épurer les données au préalable), en attendant 1 heure ou deux, ça doit pouvoir marcher. Du moment que j'ai le résultat, je peux laisser l'ordi tourner et faire autre chose en attendant, ce n'est pas un gros soucis.
 

ROGER2327

XLDnaute Barbatruc
Re : recherche de doublons entre deux colonnes et répartition en 3 colonnes

Re…
Je l'ai dit, ma proposition est écrite dans un environnement Microsoft et fait implicitement appel à la bibliothèque Microsoft Scripting Runtime (scrrun.dll) pour en utiliser l'objet Scripting.Dictionary. Dans ce cadre, la procédure fonctionne (et ne comporte pas de "bug", quoi qu'on en dise…).
Si l'on s'en tient strictement à l'utilisation de VisualBasic for Applications (VBA), on ne peut utiliser l'objet Scripting.Dictionary car ce n'est pas une composante de VBA.
C'est pourquoi la procédure du message #8, écrite en pur VBA, fonctionne dans l'environnement MacIntosh. Mais elle est trop mal écrite pour être exploitable. Comme je l'ai dit, elle n'existe que comme brouillon d'étude.
On peut l'améliorer fortement, sans toutefois atteindre les performances de la proposition du message #15. (Au passage, cette version peut encore être accélérée (de 20 à 30 %) en déclarant explicitement les dictionnaires comme Scripting.Dictionary, à condition d'ajouter la bibliothèque Microsoft Scripting Runtime aux références du projet.)

Par conséquent, il convient de réécrire la procédure du message #8. Cela peut prendre un certain temps, c'est pourquoi je vous redemande confirmation qu'il n'y a pas de modification de principe avant de me lancer (ce que je ferai volontiers,car le sujet m'intéresse). Merci d'avance.​
ROGER2327
#4882


Vendredi 20 Décervelage 138 (Saint Outlaw, aristocrate, SQ)
28 Nivôse An CCXIX
2011-W03-1T13:05:49Z
 

steph

XLDnaute Nouveau
Re : recherche de doublons entre deux colonnes et répartition en 3 colonnes

Re…
Je l'ai dit, ma proposition est écrite dans un environnement Microsoft et fait implicitement appel à la bibliothèque Microsoft Scripting Runtime (scrrun.dll) pour en utiliser l'objet Scripting.Dictionary. Dans ce cadre, la procédure fonctionne (et ne comporte pas de "bug", quoi qu'on en dise…).
Si l'on s'en tient strictement à l'utilisation de VisualBasic for Applications (VBA), on ne peut utiliser l'objet Scripting.Dictionary car ce n'est pas une composante de VBA.
C'est pourquoi la procédure du message #8, écrite en pur VBA, fonctionne dans l'environnement MacIntosh. Mais elle est trop mal écrite pour être exploitable. Comme je l'ai dit, elle n'existe que comme brouillon d'étude.
On peut l'améliorer fortement, sans toutefois atteindre les performances de la proposition du message #15. (Au passage, cette version peut encore être accélérée (de 20 à 30 %) en déclarant explicitement les dictionnaires comme Scripting.Dictionary, à condition d'ajouter la bibliothèque Microsoft Scripting Runtime aux références du projet.)

Par conséquent, il convient de réécrire la procédure du message #8. Cela peut prendre un certain temps, c'est pourquoi je vous redemande confirmation qu'il n'y a pas de modification de principe avant de me lancer (ce que je ferai volontiers,car le sujet m'intéresse). Merci d'avance.​
ROGER2327
#4882


Vendredi 20 Décervelage 138 (Saint Outlaw, aristocrate, SQ)
28 Nivôse An CCXIX
2011-W03-1T13:05:49Z



Pas de modification de principe

merci d'avance
 

ROGER2327

XLDnaute Barbatruc
Re : recherche de doublons entre deux colonnes et répartition en 3 colonnes

Suite…
Voyez si cette version VBA pur jus est acceptable.​
ROGER2327
#4884


Samedi 21 Décervelage 138 (Chaire du Dr Faustroll, SPs)
29 Nivôse An CCXIX
2011-W03-2T03:28:55Z
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : recherche de doublons entre deux colonnes et répartition en 3 colonnes

Re…
Nouvel essai…​
ROGER2327
#4885


Samedi 21 Décervelage 138 (Chaire du Dr Faustroll, SPs)
29 Nivôse An CCXIX
2011-W03-2T12:48:41Z
 

Pièces jointes

  • VENN_VBA_bis.xls
    35.5 KB · Affichages: 73

steph

XLDnaute Nouveau
Re : recherche de doublons entre deux colonnes et répartition en 3 colonnes

Grandiose!
J'ai essayé avec plusieurs centaines de lignes, le résultat est quasi immédiat

merci beaucoup ROGER2327.

Je ne manquerais de parler en bien de ce site web autour de moi.

Cordialement

Steph
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 103
Membres
104 032
dernier inscrit
akram.job