Salut à vous,
Veuillez excuser ma réponse tardive. Je confirme évidemment ce qu'indique Dranreb : ma question ne porte que sur le comportement d'Excel pendant l’exécution de l'instruction "
.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete"
L'exemple que j'ai envoyé n'est qu'une reproduction simplifiée des traitements réels que j'effectue, mais qui entraine déjà l’apparition de l’écran gris que j'aimerais éviter.
Le véritable fichier comporte de nombreuses colonnes de données et plus de 150 000 lignes.
Il convient de noter que le traitement lui même ne provoque aucune erreur. La gène est seulement esthétique pour l'utilisateur. Durant les calculs, dans le "vrai" fichier, j'affiche une userform indiquant que les calculs sont en cours ... mais elle disparait après quelques secondes lorsque que l'écran gris apparait, pour ne réapparaitre qu'en fin de traitement.
Transférer dans un tableau les lignes à conserver puis les réinjecter dans la feuille est plus long que d'utiliser l'instruction
.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
(j'avais fait le test mais je n'ai plus le fichier sous la main).
Qui plus est, cette méthode comporte ne nombreux autres inconvénients liés à la nature du fichier sur lequel je travaille.
D'après vos réponses il ne semble pas y avoir de solution pour éviter qu'Excel fige simplement l'écran au lieu d'afficher "Ne répond pas " et l'écran gris. Je peux au mieux prévenir l'utilisateur dans ma Userform tant qu'elle est visible en début de traitement : "Attention, Excel risque de perdre pied un moment mais ensuite il va reprendre la main"
Merci pour vos contributions. Cordialement,
LuigiF