La fonction VBA SpecialCells(xlCellTypeBlanks) ne fonctionne pas comme prévu dans Excel

Symptômes

Lorsque vous créez une macro Microsoft Visual Basic pour Applications (VBA) qui sélectionne plusieurs plages non contiguës dans un classeur Microsoft Excel qui utilise une expression VBA similaire à ce qui suit, les actions qui étaient censées se produire uniquement avec des cellules non contiguës se produisent dans chaque cellule de la sélection d’origine de la feuille de calcul :

expression.SpecialCells(XlCellType).expression XlCellType

peut être l’une des suivantes :

  • xlCellTypeAllFormatConditions
  • xlCellTypeAllValidation
  • xlCellTypeBlanks
  • xlCellTypeComments
  • xlCellTypeConstants
  • xlCellTypeFormulas
  • xlCellTypeSameFormatConditions
  • xlCellTypeSameValidation
  • xlCellTypeVisible

Cause

Ce comportement se produit si vous sélectionnez plus de 8 192 cellules non contiguës avec votre macro. Excel prend uniquement en charge un maximum de 8 192 cellules non contiguës via des macros VBA.

En règle générale, si vous essayez de sélectionner manuellement plus de 8 192 cellules non contiguës, le message d’erreur suivant s’affiche :

La sélection est trop grande.

Toutefois, lorsque vous utilisez une macro VBA pour effectuer la même sélection ou une sélection similaire, aucun message d’erreur n’est généré et aucun code d’erreur qui peut être capturé par le biais d’un gestionnaire d’erreurs n’est généré.

Solution de contournement

Pour contourner ce comportement, vous pouvez créer une structure de bouclage dans votre macro VBA qui gère moins que les 8 192 cellules maximales.

Statut

Ce comportement est inhérent au produit.