VBA Effacer une plage de cellules
Bonjour à tous,
Voila je suis débutant en VBA et en règle générale en programmation. J'aurais une question a vous soumettre concernant un code VBA pour "trier" un tableau excel. MMon tableau excel est oragnisé sur plusieurs colonnes allant de A à L, et sur un nombre de lignes inconnu mais ne dépassant pas 500 lignes
En fait j'aimerais que lorsque que la plage A2:F2 est identique à la plage A3:F3, la plage soit A3:F3 soit effacée et ainsi de suite en sachant que A4:F4 peut etre identique a A2:F2 et que lorsque A5:F5 par exemple est différent de A2:F2, la comparaison recommence a partir de A5:F5....c'est pas clair ?
Exemple d'origine:
Code:
1 2 3 4 5 6 7 8 9
|
A B C D.....jusqu'a F - les colonnes apres F contiennent d'autres champs a ne pas supprimer
1 x x x x
2 x x x x
3 x e x x
4 y y y y
5 y y y y
6 z z z z
7 a a a a |
Exemple tableau après VBA:
Code:
1 2 3 4 5 6 7 8 9
|
A B C D.....jusqu'a F
1 x x x x
2
3 x e x x
4 y y y y
5
6 z z z z
7 a a a a |
Donc il s'agit simplement d'effacer les données des cellules et non pas de supprimer les lignes (ce que j'arrive a faire en vba).
Macro que j'ai faites mais qui ne marche pas...erreur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Sub test()
Dim i As Integer
Dim j As Integer
i = 1
j = i + 1
n = 1 ' compteur
While n < 500
linei = Cells(i, 1).Cells(i, 2).Cells(i, 3).Cells(i, 4).Cells(i, 5).Cells(i, 6).Value
linej = Cells(j, 1).Cells(j, 2).Cells(j, 3).Cells(j, 4).Cells(j, 5).Cells(j, 6).Value
If linei = linej Then
j = j + 1: n = n + 1
linej.ClearContents
ElseIf linei <> linej Then i = j: j = i + 1: n = n + 1
End If
Wend
End Sub |
Si quelqu'un peut m'aider sur ce code ça me serait bien utile...je ne pense pas que ce soit compliqué a faire en VB mais je bloque...
Merci d'avance
@+
Monsterfab