Bonjour,
J'ai codé la macro suivante, mais j'aimerai améliorer la syntaxe du code et surtout des boucles car le fichier original contient beaucoup de données ce qui ralentit le traitement.
Si les HardCoderz du forum peuvent y apporter des corrections/améliorations, tout en m'expliquant pourquoi, je suis preneur !
Comment ce code doit marcher ?
1) Dans le sheet "Feuil1" j'ai des données de la colonne A à P (P contient une référence unique pour chaque ligne)
2) Dans "Feuil2" je copie des données de la colonne A à N (N contient une référence unique pour chaque ligne)
3)je lance le code
==> Dans "Feuil2" il y a des références que l'on retrouve dans "Feuil1". La macro a pour but de supprimer les références de la colonne N dans ""Feuil2" qui sont déjà présentent dans "Feuil1".
Merci et j'attends vos feedback
Cheers !
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 Sub test_ctrl1() '**** declaration des variables **** Dim I As Integer Dim ref_deal As String Application.ScreenUpdating = False '**** scan et delete des references **** For I = 2 To 40 Step 1 ref_deal = Worksheets("Feuil2").Cells(I, 14) Set MonDeal = Worksheets("Feuil1").Range("P2:P3000").Find(ref_deal, LookIn:=xlValues) If Not MonDeal Is Nothing Then Worksheets("Feuil2").Range("N2:N40").Find(ref_deal, LookIn:=xlValues).EntireRow.Delete 'j'aimerai supprimer la ligne correspondante que de la colonne A à N If I = 40 Then Exit For Next I Set MonDeal = Nothing For I = 2 To 20 Step 1 ref_deal = Worksheets("Feuil2").Cells(I, 14) Set MonDeal = Worksheets("Feuil1").Range("P2:P3000").Find(ref_deal, LookIn:=xlValues) If Not MonDeal Is Nothing Then Worksheets("Feuil2").Range("N2:N21").Find(ref_deal, LookIn:=xlValues).EntireRow.Delete 'supprimer la ligne correspondante que de la colonne A à N If I = 20 Then Exit For Next I Set MonDeal = Nothing For I = 2 To 15 Step 1 ref_deal = Worksheets("Feuil2").Cells(I, 14) Set MonDeal = Worksheets("Feuil1").Range("P2:P3000").Find(ref_deal, LookIn:=xlValues) If Not MonDeal Is Nothing Then Worksheets("Feuil2").Range("N2:N20").Find(ref_deal, LookIn:=xlValues).EntireRow.Delete 'supprimer la ligne correspondante que de la colonne A à N Next I MsgBox ("Le traitement est terminé") End Sub
Partager