Bonjour, Jean-Eric,
pour répondre à l'erreur de compilation sur cette ligne de code :
For Each Cel In .Range("X11:X" & Rows.Count).End(xlUp).Row <-- erreur compilation
Le "." devant Range stipule que vous faite référence à un objet défini par un "With" sur les ligne du dessus, hors il n'y en a pas, donc erreur de compilation.
Exemple de ce qui peut être fait :
With ActiveSheet
.Range("B17").Value = "LouReeD"
End With
Alors ici c'est au plus simple et ne sert à rien (surtout le fait d'inscrire LouReeD en B17 de la feuille active), mais c'est pour vous montrer que le "." devant Range fait référence au With qui se trouve avant, donc à l'objet ActiveSheet.
Le With permet de simplifier l'écriture du code VBA en "factorisant" la référence d'un objet.
@ bientôt
LouReeD