Bonjour,

Je viens vers vous pour m'apprendre à optimiser mon code VBA, voici ci-dessous le code:

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
Sub Extraction()
    Range("B:B").Select 'Sélection de la colonne B
    Selection.Insert Shift:=xlToRight 'Créer la colonne envoie tout ce qu'il contient vers la droite
    ActiveCell.FormulaR1C1 = "Désignation" 'Nomme la colonne "Désignation"
 
    Dim compt As Integer
 
    For compt = 2 To 10000
        Range("J" & compt).Select
        If Range("J" & compt) = "***" Or Range("J" & compt) = "3000" Or Range("J" & compt) = "3001" Or Range("J" & compt) = "3005" Or Range("J" & compt) = "3006" Or Range("J" & compt) = "3050" Or Range("J" & compt) = "7900" Or Range("J" & compt) = "7910" Or Range("J" & compt) = "7920" Then
 
            'MsgBox ("Ok")
 
        Else
            Selection.EntireRow.Delete
            compt = compt - 1
            If Range("A" & compt) = "" Then
                Exit For
            End If
        End If
    Next compt
 
 
End Sub
Lorsque j'exécute la macro, elle prend un temps considérable à s'exécuter alors que mon document devrait contenir (chaque jour) environ 1000 lignes à la fin des suppressions...
Cependant, il mouline et mouline et encore et toujours .. Alors qu'a partir du moment ou la colonne A et la ligne soit vide, nous sortons de la boucle FOR. Or ici, c'est bien plus long.
Avez vous une solution pour optimiser mon code (et ainsi pour qu'il soit traiter plus rapidement) et aussi une solution pour ma boucle défectueuse.

Merci, Bonne journée

Aurélien