Bonjour,


J'ai un fichier avec 60 000 lignes environs.

Je dois extraire certaines données de celui-ci, j'ai pensé à utiliser les filtres mais étant donné qu'il y a beaucoup de ligne, les filtres ne m'affichent pas toutes les données.
Je passe donc par une macro mais qui reste relativement longue pour le traitement .

Est-il possible d'optimiser ce code afin d'avoir une vitesse de traitement plus rapide.


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
43
44
45
46
47
48
49
50
51
52
53
 
 
Sub Nettoyage
 
'Suppression lignes 1 à 11
 
Rows("1:11").Delete Shift:=xlUp
 
 
 
'suppression demandes hors curatif
 
derniereligne = Range("A1").SpecialCells(xlCellTypeLastCell).Row
 
For k = derniereligne To 2 Step -1
 
typetravail = Range("O" & k).Value
 
If typetravail <> "Curatifs" And typetravail <> "Curatif injustifié" And typetravail <> "Suivis" Then Rows(k).Delete
 
Next k
 
 
'Suppression demandes hors IMMO et DSCC non concernées
 
 
For s = derniereligne To 2 Step -1
 
DSCC = Range("E" & s).Value
Famille = Range("A" & s).Value
 
 
If Famille <> "IMMOBILIER" Or DSCC <> "443620-NANTES DSCC" And DSCC <> "492880-ANGERS DSCC" And DSCC <> "353630-RENNES DSCC" And DSCC <> "141220-CAEN DSCC" And DSCC <> "761530-ROUEN DSCC" And DSCC <> "562810-VANNES DSCC" And DSCC <> "372090-TOURS DSCC" And DSCC <> "451580-ORLEANS DSCC" Then Rows(s).Delete
 
Next s
 
 
'Suppression statut
 
For t = derniereligne To 2 Step -1
 
stat = Range("G" & t).Value
 
If stat = "TERMINE" Or stat = "DEVISREFUSE" Or stat = "ANNULE" Then Rows(t).Delete
 
Next t
 
 
'Suppression colonnnes inutiles
 
Range("B:D,H:I,L:M,O:O,Q:U,W:AB,AD:AD,AF:AP").Delete Shift:=xlToLeft
 
End Sub
Merci