re,
c'est concernant la création de "Arr"
hier : arr = Evaluate("test*100+row(test)+(column(test)+rand())/100") 'matrice qui montre les cellules en problèmes avec leur n° de ligne et colonne + valeur aléatoire
vs
aujourd'hui : arr = Evaluate("test*100+row(test)+column(test)/100") 'matrice qui montre les cellules en problèmes avec leur n° de ligne et colonne + valeur aléatoire
la plage nommée "Test", c'est AQ8:AT15, donc 8 lignes * 4 colonnes et ce "Arr" était supposé de créer une matrice de 8x4 avec la valeur de la cellule *100 + la ligne de la cellule + la colonne de la cellule /100 + une valeur aléatoire /100. J'ai supprimé ce dernier argument pour 2 raisons, 1 il était inutile parce qu'il se trouvait à la queue mais surtout il donnait pour les 32 éléments de la matrice le même valeur aléatoire et donc l'astuce "aléatoire" était perdu.
Maintenant vous pouvez constater que je le fais différament. Je compte le nombre de cellules >0 dans cette plage. Si il y a par exemple 3 (les lignes sont de 8 à 15, les colonne de 43 à 46), on pouvait avoir des valeurs comme 108,43 = la celule la ligne 8 et colonne 43 (AQ8) contient la valeur 1.
N = WorksheetFunction.CountIf(Range("test"), ">=1") 'nombre de cellules "doublons"
N1 = WorksheetFunction.RandBetween(1, N) 'une cellule aléatoire des cellules en problèmes
Do
N2 = WorksheetFunction.RandBetween(1, 32) 'une cellules aléatoire des 32
Loop While N1 = N2 'les 2 ne peuvent pas être égal
Avec N on sait les nombre de cellules avec un doublon dans la plage "Test" et on choisit aléatoire une de ces N avec N1. Puis on prend une 2eme cellule qui est différente de la première (N1<>N2)
un moment ....