Doublons dans une matrice dédoublée

Bonjour,

J'ai une matrice qui compare chacun de mes individus entre eux sur une même ligne, donc compare #1 avec #2, #2 avec #3, mais aussi #2 avec #1, #2 avec #3 et etc.. C'est difficile à expliquer, mais j'ai mis un exemple clair en pièce jointe. Ainsi, mes valeurs sont dédoublées et je veux sélectionner seulement une partie de cette matrice, la moitié en fait (correspondant à mes comparaisons, mais pas dédoublées). J'ai essayé "Détecter les doublons", mais Excel n'en détecte pas, alors que les valeurs reviennent pourtant bel et bien 2 fois puisque les comparaisons se font 2 fois (Lala 15 avec 16, puis Lala 16 avec 15). Savez-vous comment je pourrais sélectionner seulement la première moitié des données?

Merci,

Calipsooo

Bonsoir,

Vous trouverez une proposition, en espérant qu'elle conviendra.

Warning : il ne faut rien saisir en colonne a en dessous des tableaux.

Cdt et bonne soirée

Air_2

Merci! Wow, je suppose que c'est une macro, que malheureusement je ne sais pas du tout comment utiliser!

Puis-je copier un autre tableau plus gros à la place de celui-ci, et cela fonctionnera quand même?

Calipsooo

Bonsoir,

Le savoir est une chose qu'on aime partager comme le bon pain.

Vous trouverez ci-après le code avec les explications les plus importantes :

Public Lignefin, Colonnefin As Variant 'je déclare les variables
Public LigneDebut, Lignefin2 As Variant 'je déclare les variables

Sub Constituer_BaseRef()
 'je lui demande de trouver le numéro de la derniere ligne non vide en commencant par la cellule A6
Lignefin = Feuil1.Range("a6").End(xlDown).Row

 'je lui demande de trouver le numéro de la derniere Colonne non vide en commencant par la cellule IV5
Colonnefin = Feuil1.Range("IV5").End(xlToLeft).Column

'je commence ma boucle à la ligne 6 jusqu'à la derniere lige trouvée ci-dessus
For a = 6 To Lignefin

'je commence à la première colonne jusqu'à la derniere colonne renseignée
    For b = 1 To Colonnefin

    If Feuil1.Cells(a, b) = "" Or Feuil1.Cells(a, b) = " " Then 'si la première cellule visitée est vide     
    GoTo step1 ' alors je vais en step1 en bas    
    Else

    Feuil1.Cells(a + Lignefin + 2, b) = Feuil1.Cells(a, b) 'si la cellule n'est pas viide j'envoie la valeur de la cellule : à la ligne visitée + (la valeur de la dernierne ligne) + 2

    End If

    Next

step1: 'donc ici la suite logique je vais à la ligne suivante

Next

End Sub

Sub effacer()
LigneDebut = Feuil1.Range("A65536").End(xlUp).End(xlUp).Row 'je recherche la premiere ligne renseignée en partant de la dernière ligne de la feuille (j'ai donc 2 fois .end(xlup))
Lignefin2 = Feuil1.Range("A65536").End(xlUp).Row

Feuil1.Range(Feuil1.Rows(LigneDebut), Feuil1.Rows(Lignefin2)).ClearContents

End Sub

En espérant avoir été clair.

Cdt et bonne fin de soirée

Air_2

Rechercher des sujets similaires à "doublons matrice dedoublee"