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:
Exemple tableau après VBA:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Macro que j'ai faites mais qui ne marche pas...erreur
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...
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 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
Merci d'avance
@+
Monsterfab
Partager