PaliSkill
Introduction au VBA

Leçon 7 / 8 — Chapitre 2: Logique conditionnelle et boucles

Application.ScreenUpdating et DisplayAlerts

Une macro qui traite des centaines de lignes en modifiant l'affichage à chaque étape peut devenir visiblement lente, l'écran clignotant à chaque changement. Deux propriétés de l'objet Application accélèrent l'exécution et évitent des interruptions inutiles.

Désactiver le rafraîchissement de l'écran

Sub TraitementRapide()
    Application.ScreenUpdating = False

    Dim i As Integer
    For i = 2 To 500
        Cells(i, 1).Interior.Color = RGB(220, 230, 241)
    Next i

    Application.ScreenUpdating = True
    MsgBox "Traitement terminé"
End Sub

Pendant que ScreenUpdating est à False, Excel continue de travailler en arrière-plan mais n'affiche plus les changements à l'écran jusqu'à la fin. Toujours remettre ScreenUpdating = True à la fin, sinon Excel reste figé visuellement même après la macro.

Désactiver les alertes de confirmation

Sub SupprimerFeuille()
    Application.DisplayAlerts = False
    Worksheets("Brouillon").Delete
    Application.DisplayAlerts = True
End Sub

Sans cette ligne, supprimer une feuille par code déclenche quand même la boîte de dialogue de confirmation habituelle d'Excel, qui interromprait une macro censée fonctionner sans intervention humaine.

Exemple concret : une macro de nettoyage mensuel supprime automatiquement trois feuilles temporaires et reformate 300 lignes. Sans DisplayAlerts = False, la macro s'arrêterait trois fois pour attendre une confirmation manuelle.

À vous de jouer : écrivez une macro qui désactive le rafraîchissement d'écran, effectue une boucle de mise en forme sur 100 lignes, puis réactive le rafraîchissement à la fin.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 76 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès