Re,
Ta macro ne fait rien, il est donc difficile de te montrer comment l'améliorer.
Mais par rapport à ton code qui ne fait rien, voici une manière plus élégante de ne toujours rien faire (plusieurs lignes de code et des variables inutiles supprimées) :
Sub démo()
Cells(7, 1).Select
Do
If ActiveCell.Offset(0, 21) = "TABLE ANNULEE" Then
Range(ActiveCell, ActiveCell.Offset(0, 25)).Copy
End If
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Offset(1, 0) = ""
End Sub
Je prétends que ta macro ne fait rien, car tu boucles sur certaines lignes et tu copies une plage à certaines conditions, mais tu ne colles nulle part les données copiées. Puis à la fin de ton tableau, ta macro s'arrête
Avec ton code, la macro boucle encore deux fois dans le vide (deux lignes vides au-dessous du tableau). J'ai corrigé cela dans le code ci-joint.
Chaleureusement.