Salut à tous,
J’ai 2 petits cas à traiter pour une application, et je ne serais pas contre un petit coup de main.
1er cas : suppression de lignes « dupliquées » (parfois 2, 3,4, …). J’ai un script mais il est très lent car je crois qu’il vérifie le contenu de chaque cellule sur toute la ligne. Comme dans mon exemple, je souhaiterais que la vérification des doublons ne se fasse que sur le contenu d’une seule colonne (la B). Puis suppression des lignes toutes entières qui on était dupliquées, et on ressert les lignes pour éviter les espaces vides.
Voilà ce que j'utilisais jusqu’à présent, mais le script vérifie le contenu de chaque cellule, ce qui rend le traitement monstrueusement long :
2ème cas : Lorsque la valeur « oui » apparait dans la colonne 2, alors la ligne contenant la valeur « oui » écrase et remplace la ligne située juste au dessus d’elle (là encore on ressert les lignes pour pas qu’il n’y est d’espace vide.
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Sub SuppressionDoublons() Dim i as long, j as long, z as long Dim NomFeuille as String Dim LigPrem as long Dim lOriginal(0 to 4) as variant dim lIdentique as Boolean Dim lToControl as range Dim lMaxLine as long lMaxLine=Sheets(NomFeuille).Range("A" & "65536").End(xlup).row LigPrem = 2 NomFeuille="Spécifiques sur BPR standard" For i = LigPrem to lmaxLine 'Mise en tampon de la ligne à controler et controle de non vide (risque de bouclage infini sinon) lIdentique=true for z=0 to 4 lOriginal(z)=sheets(NomFeuille).Range("A" & i).offset(0, z).value if lOriginal(z)<>"" then lIdentique=false next z if not lIdentique then For j= i +1 to lmaxLine+1 if j< i +1 then j= i +1 set lToControl=sheets(NomFeuille).Range("A" & j) lIdentique=True for z=0 to 4 if lOriginal(z)<>lToControl.Offset(0,z).value then lIdentique=false exit for end if next z if lIdentique then Rows(j).Delete j=j-2 end if Next j end if Next i End Sub
J’espère ne pas trop vous en demandez, ma faible expérience de développeuse en herbe ne me permet pas de rédiger des scripts intelligibles et efficace.
Par avance merci.
Sophie![]()
Partager