Lire en anglais

Partager via


Les parties d’Excel se transforment en blanc ou gris lorsque vous exécutez du code VBA dans Excel 2013

Symptômes

Lorsque vous exécutez du code Microsoft Visual Basic pour Applications (VBA) dans Microsoft Excel 2013, les parties d’Excel peuvent apparaître blanches ou grises, selon votre thème Office. Il reste vide jusqu’à ce que le code se termine. Ce problème peut se produire si le code VBA effectue une ou plusieurs des actions suivantes dans une macro qui s’exécute suffisamment longtemps pour que l’utilisateur voit les résultats avant la fin de la macro :

  • Sélection répétée de cellules
  • Insérer des feuilles
  • Mettre à jour ou ouvrir des volets Office
  • Ajouter un classeur

Cause

Ce problème est dû aux modifications apportées dans Microsoft Office 2013 pour optimiser le nouveau moteur graphique.

Solution de contournement

  1. Utilisez ScreenUpdatingto pour désactiver les mises à jour d’écran d’Excel afin de ne pas voir les modifications lorsqu’elles sont désactivées. Cela peut également améliorer les performances de votre macro.

    VB
    Application.ScreenUpdating = False
    Workooks.Add
    Application.ScreenUpdating = True
    
  2. Si vous avez besoin de voir les modifications apportées à l’écran, insérez une commande DoEvents après la ligne du code qui entraîne l’affichage blanc de l’écran. L’utilisation de DoEvents permet d’optimiser les performances des macros.

    VB
    Workbooks.Add
    DoEvents
    

État

Cette limitation est une limitation connue dans Excel 2013.

Note

Pour toutes les versions d’Excel, un effet similaire peut se produire dans des macros de longue durée lorsque Windows transforme l’application en blanc et le marque pour ne pas répondre. Cela se produit parce qu’Excel ne répond pas à Windows pendant l’exécution de la macro. DoEvents vous aidera également dans ce scénario en permettant à Excel de répondre à Windows et d’autoriser la récupération de l’écran de l’application.