Bonjour,

j'ai une macro qui marche parfaitement bien mais assez longue à l'exécution

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
' Suppression des lignes inutiles 
With Cells(Rows.Count, "AN").End(xlUp).MergeArea: derligPdf = .Cells(.Cells.Count).Row: End With    ' dernière ligne à supprimer
For i = derligPdf To 1 Step -1
If Cells(i, 40).Value = "X" Then
    For Each shap In ActiveSheet.Shapes
    If shap.TopLeftCell.Row = i Then shap.Delete
    Next
Cells(i, 40).EntireRow.Delete
End If
Next i
derligPdf est > 1000

Il me semble à l'étude de cette boucle qu'elle n'est pas optimum car en mode pas à pas je vois que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
For Each shap In ActiveSheet.Shapes
    If shap.TopLeftCell.Row = i Then shap.Delete
    Next
s'exécute ne nombreuses fois alors que je n'ai qu'une image par ligne, la boucle en jaune se fait sur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
If shap.TopLeftCell.Row = i Then
    Next
Je ne saisi pas le sens de cette boucle