Bonjour,
J'ai une macro qui me permet dans une Feuille de supprimer les lignes dont le critère est le fournisseur.
Si j'ai un fournisseur dans la 2e feuille, il faut supprimer toutes les lignes de ce fournisseur dans la première feuille. Je joins un fichier où je laisse l'ensemble de la macro (l'objectif global est de remplacer dans la 1ère feuille toutes les lignes des fournisseurs pour lesquels j'ai reçu un fichier mis à jour).
J'aimerais améliorer cette partie :
Le fichier réel fait 10 000 lignes (environ 5000 dans la 2e feuille) sur 30 fournisseurs, et pas mal de formules et mises en forme conditionnelles. La procédure est longue et c'est cette partie de la macro qui prend du temps. A priori la fonction Dictionary devrait accélérer l'exécution, mais je ne suis pas spécialiste et je ne trouve pas vraiment le code pour faire ça.
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 Dim cel As Range, derlig&, derL&, i& Application.ScreenUpdating = False derlig = Sheets("Production_Schedule").Cells(Rows.Count, 1).End(xlUp).Row With Sheets("Production_Schedule") derL = .Cells(Rows.Count, 1).End(xlUp).Row For i = derL To 2 Step -1 Set cel = shRecap.Range("c2:c" & derlig).Find(.Range("c" & i).Value, lookat:=xlWhole) If Not cel Is Nothing Then .Rows(i).Delete Set cel = Nothing End If Next i End With
Pouvez vous m'aider à faire ce code ?
Il faut constituer le Dictionnaire sans doublon des fournisseurs en colonne C de la 2e feuille et ensuite supprimer sur la première feuille les lignes dont le fournisseur en colonne C fait partir de ce dictionnaire.
J'ai laissé le reste de la macro en commentaires mais je suis aussi ouverte à toute suggestion pour améliorer ce code.
Merci beaucoup
Partager