Bonjour à tous
Je vais essayer d'être le plus clair possible sans joindre mon fichier excel.
Mon objectif est de créer une macro pour nettoyer une base de données des éventuelles répétitions de valeurs.
J'ai donc programmé une boucle qui compare une à une les valeurs des différentes cellules avec la moyenne des x cellules précédentes (fonction average) et qui supprime s'il le faut la valeur de la cellule.
Le hic c'est que cette macro fonctionne bien pour une partie du classeur mais pas partout. Il reste des pavés de cellules identiques.
J'ai donc lancé la macro en pas à pas jusqu'à une cellule problématique et en passant ma souris sur les valeurs comparées dans les lignes de code (cellule et moyenne) je vois que bien que celles ci soient égales. En gros à la question 10.18 = 10.18 ? excel me répond NON.
En allant voir dans le tableau, je ne vois pas de différence entre les cellules (pas d'espace, même format, même nombre de chiffres)...
Pour information, le noyau de la macro est le suivant
En espérant avoir été assez clair, je vous remercie de l'attention que vous portez à mon problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Dim i As Integer Dim j As Integer j = 1 While j <= nb_colonne i = nb_ligne While i > tolérance Set plage = Range(Cells(i - tolérance, j), Cells(i - 1, j)) Dim moy As Double moy = WorksheetFunction.Average(plage) If Cells(i, j) = moy Then Cells(i, j) = "" End If i = i - 1 Wend j = j + 1 Wend
Partager