Comparer toute les lignes d'un tableau excel

Sieg -  
Fxbrg Messages postés 715 Statut Membre -
Bonjour,

J'ai un ensemble de donnée que je cherche a comparer les unes avec les autres et je ne trouve aucun formule correspondante sous excel, on ma conseil de me rabattre sur les macro mais je n'ai aucune connaissance dans ce domaine donc j'en appel a vous.

Mes données sont des génotypes a comparer (biologie), se présentant dans un tableau excel fait par mes soins ^^

Le format du tableau et de ce type

Nom des individus en colonne A à partir de A2
Génotype premier gene colonne B et C à partir de B2 et C2

avec 6genes étudiés donc au totale 12colonnes a comparer entre chaque individus sur environ 200 individus.

Le but serait de comparer chaque individus a tous les autres et de me signaler en couleur par exemple les individus ayant les même valeur pour tous les génotypes en même temps ...

Comme je doute d'etre trés clair je vous donne un exemple concret :

Nom géno1 Géno2 Géno3 Géno4 Geno5 Géno6
ind1 106 106 230 230 301 304 110 105 243 244 321 367
ind2 107 106 236 230 301 304 110 109 243 244 321 367
ind3 106 106 230 230 301 304 110 105 243 244 321 367

Les individus 1 et 3 sont identiques donc il faudrait me les mettre en couleur.

Voila j'espère que c'est assez clair comme cela.

Merci a vous.
A voir également:

44 réponses

lili1678 Messages postés 208 Statut Membre 12
 
il y a un article dans micro actuel de ce mois ci qui traite de ton problème, ils parlent de mise en forme conditionnelle
1
lili1678 Messages postés 208 Statut Membre 12
 
pour créer la condition, il faut passer par format-mise en forme conditionnelle
0
Sieg
 
La mise en forme et la coloration des données n'est que superflu, la base du soucis c'est de comparer chacune de mes lignes de données avec l'ensemble de mon tableau.
Et si ca répond à ma question est-ce que tu pourrais etre plus explicite parce que je ne vois pas en quoi une mise en forme auto maiderais a comparer des données...

Il faut en fait que je comparer la ligne 2 d'un tableau avec un ensemble de ligne (jusqu'a 151 pour l'instant mais on l'espère prochainement sur un millier voir plus ...)
0
lili1678 Messages postés 208 Statut Membre 12
 
http://www.cathyastuce.com/excel/condition.php
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fxbrg Messages postés 715 Statut Membre 199
 
Hello,

Tu peux mettre en ligne un exemple de ton fichier? (cijoint.fr)

Tu veux que cette identification par couleur se fasse à la volée? c-à-d quand tu saisis un gène? Ou bien tu veux saisir puis lancer la recherche de concordances?

Dans tous les cas, il va falloir passer par une macro, si tu mets ton fichier en ligne, je m'y colle :-)
0
Sieg
 
J'ai essayer avec la mise en forme, effectivement ca me signale les données identiques mais ca ne m'avance pas car ca ne compare qu'une cellule a une autre (a moins de ne pas avoir bien comprit).

Il me faut comparer les 12cellules a la fois et seulement si les 12cellules sorte de maniere identique dans ma base de donnée alors il faut qu'il me le signale. Ce n'est pas une comparaison case par case dont j'ai besoin mais comparer les 12cases de génotype de chaque individus avec les 12cases de génotype de chacun des autres individus.

La mise en forme conditionnelle m'aide pour la lecture manuelle mais j'aimerais trouver une méthode vraiment automatisé de comparaison de l'ensemble de mes donnée simultanéement, sachant que le nombre d'individus va augmenter ainsi que le nombre de génotype ...

Merci de ton aide en tout cas :)
0
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 450
 
Bonjour

Pour comparer les 12 cellules à la fois, il faudrait concatener vos colonnes en créant une colonne récapitulative:
Soit en colonne X
cellule X2, à trier selon la hauteur du champ
=B2&C2&D2&E2&F2&G2&H2etc......

Ainsi vous obtiendrez un code complet dans une cellule, spécifique à chaque ligne.

Ceci dit, je laisse des meilleurs que moi traiter la suite, car je ne connais pas la macro qui donnera les couleurs . Et sans macro, on ne dépassera pas 3 options de couleur , avec un formatage conditionnel

Je peux simplement identifier par une formule qu'il y ai une seule ou plusieurs fois le même code dans la liste:
en colonne Y par exemple:

En Y2
=si(ESTVIDE(X2);0;SI((NB.SI(X:X;X2)=1);"Seul";"plusieurs"))

"Seul et plusieurs" étant à revoir selon les codes à utiliser.

Tout cela ne vous aidera sans doute pas beaucoup....

BCRDLMNT

0
Sieg
 
Voila une partie de mes données en exemple avec la mise en forme qu'ils doivent avoir :

http://www.cijoint.fr/cjlink.php?file=cj200802/cij11118932045752.xls.

et je pencherais plutot pour une saisie totale de toute mes infos puis une recherche de concordance.

Merci de ton aide ^^
0
Fxbrg Messages postés 715 Statut Membre 199
 
Ca me met "fichier inaccessible" sur ton lien, tu veux bien vérifier?
0
Sieg
 
Je retente le lien n'ayant pas trouver l'icone d'édition ^^

http://www.cijoint.fr/cjlink.php?file=cj200802/cij11118932045752.xls
0
Fxbrg Messages postés 715 Statut Membre 199
 
Ca marche...

Question : cherches-tu un seul couple? peut-il y avoir plus de deux lignes concordantes? peut-il y avoir plusieurs groupes de lignes concordantes?

:-)
0
Fxbrg Messages postés 715 Statut Membre 199
 
Hello :-)

regarde ça : http://www.cijoint.fr/cjlink.php?file=cj200802/cij6851484335735.xls

et dis-moi ce que tu en penses :-)
0
Fxbrg Messages postés 715 Statut Membre 199
 
Oops, j'ai mis un mauvais lien, voici le bon :

http://www.cijoint.fr/cjlink.php?file=cj200802/cij10953692345719.xls

:-)
0
Fxbrg Messages postés 715 Statut Membre 199
 
Pour info, ce petit bout de code ne fonctionne que si tu n'as que des paires... Si tu peux avoir trois lignes ou plus identiques, il faut le modifier...

:-)
0
Fxbrg Messages postés 715 Statut Membre 199
 
Voici la version qui accepte tous les cas de figure, plus un bouton de reset des couleurs pour le fun :-)

http://www.cijoint.fr/cjlink.php?file=cj200802/cij10953692345719.xls
0
Fxbrg Messages postés 715 Statut Membre 199
 
Arghh... impossible de mettre la version finale du cij... Si tu as un mail, je te l'envoie en direct :-) le fichier fait 32ko..

@+,

JF
0
Sieg
 
Merci de ton aide ^^

Oui il est possible d'avoir plus de deux ligne égale tout comme il est possible qu'il y est des groupes de deux et + de ligne égale ... 2ligne égale et 3ligne égale différente des deux autres est tout a fait possible.


Voila mon adresse mail : sieg-wahrmeit@laposte.net


L'exemple que tu me donne a l'air sympa mais il me le faudrait sous le format macro ou m'expliquer comment récupérer de ton exemple le fichier de programmation correspondant a la macro utilisé ^^ <== noob attitude.


Merci en tout cas.
0
Fxbrg Messages postés 715 Statut Membre 199
 
Le fichier est parti...

Pour voir le code : clic droit sur l'onglet de ta feuille, puis visualiser le code...

Il y a deux boutons, chacun a son code : le premier remet le fond en blanc...

Le second est plus malin :-)

On crée deux variables : conc1 et conc2.

Ensuite on part de la fin de la feuille (usedrange.rows.count) et on remonte (step -1) jusqu'à la ligne 2 (to 2)

A chaque ligne, on affecte conc1 comme étant une concaténation de toutes les cellules de la ligne (cells(1,2)&...cells(i,13)
Ensuite on balaie tout le tableau, en partant de la ligne juste au dessus jusqu'à la ligne 2, on affecte à la seconde variable conc2 la concaténation de la ligne observée, puis on compare. Si conc1=conc2, on donne aux deux lignes la mêmes couleur...

Et on recommence jusqu'à la fin... :-)

Ce code est indépendant du nombre de lignes de ton tableau. Tu peux avoir X occurences de lignes identiques, qui seront de la même couleur. Chaque nouvelle association prend une nouvelle couleur.

Dis moi si ça gaze :-)
0
Sieg
 
Visuellement ca marche et c'est tréssssssss exactement ce que je voulais, malheureusement quand je ccopie-colle l'ensemble de mes données j'ai un message d'erreur ...

Erreur d'execution 1004

Impossible de définir la propriété ColorIndex de la classe Interior

Et en cliquant bien évidemment sur débogage j'ai le droit a une surlignement de cette ligne :

Range(Cells(i, 2), Cells(i, 13)).Interior.ColorIndex = i

Voila si tu as une idée je suis prenneur ^^
0
Fxbrg Messages postés 715 Statut Membre 199
 
Il est possible que selon le nombre de lignes, le i soit trop grand ou ne corresponde pas à une couleur... Combien as-tu de lignes dans ton tableau?
0
Sieg
 
Pour le moment 151 ligne différent (en partant de la 2eme ...) mais au final je risque de passer les 1000 voir plus avec un peu de chance.
0
Fxbrg Messages postés 715 Statut Membre 199
 
Copie ça en lieu et place du code du bouton 1 :

Private Sub CommandButton1_Click()
Dim conc1 As Double, conc2 As Double
Dim n As Integer, i As Integer, j As Integer, k As Integer
j = 2
For i = UsedRange.Rows.Count To 2 Step -1
conc1 = Cells(i, 2) & Cells(i, 3) & Cells(i, 4) & Cells(i, 5) & Cells(i, 6) & Cells(i, 7) & Cells(i, 8) & Cells(i, 9) & Cells(i, 10) & Cells(i, 11) & Cells(i, 12) & Cells(i, 13)
k = 0
If Cells(i, 2).Interior.ColorIndex = -4142 Then
For n = 1 To i - 2
conc2 = Cells(i - n, 2) & Cells(i - n, 3) & Cells(i - n, 4) & Cells(i - n, 5) & Cells(i - n, 6) & Cells(i - n, 7) & Cells(i - n, 8) & Cells(i - n, 9) & Cells(i - n, 10) & Cells(i - n, 11) & Cells(i - n, 12) & Cells(i - n, 13)
If conc1 = conc2 Then
Range(Cells(i, 2), Cells(i, 13)).Interior.ColorIndex = j
Range(Cells(i - n, 2), Cells(i - n, 13)).Interior.ColorIndex = j
k = 1
End If
Next
End If
If k = 1 Then j = j + 1
Next
End Sub

et dis-moi comment ça se passe...

Je dois partir, serai de retour plus tard ce soir...

@+,

JF
0