Bonsoir Luc,
Heureux que tu aies trouvé une solution mais ce que tu as écrit au dessus ne sert pas vraiment à grand chose...
Application.ScreenUpdating est en effet une solution. Mais souvent c'est d'éviter de sélectionner les cellules qui est la solution. On a souvent tendance à mettre du "Select" à toutes les sauces car c'est ce que l'on voit en premier dans toutes les macros de l'enregistreur.
Voici un exemple, je veux effacer le contenu d'une plage de cellules...
Avec l'enregistreur ce qui donne :
Sub Macro1()
'
' Macro2 Macro
' Macro enregistrée le 15/02/2003 par Thierry
'
'
Selection.ClearContents
Range("B3").Select
Selection.ClearContents
Range("C3").Select
Selection.ClearContents
Range("D3").Select
Selection.ClearContents
Range("D14").Select
Selection.ClearContents
End Sub
Ou encore ceci dans le meilleur des cas:
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 15/02/2003 par Thierry
'
'
Range("B3,C3,D3,D14").Select
Range("D14").Activate
Selection.ClearContents
End Sub
Pour éviter que celà ne clignotte et soit visible au yeux de l'utilisateur on peut utiliser :
Sub Macro2Bis()
Application.ScreenUpdating = False
Range("B3,C3,D3,D14").Select
Range("D14").Activate
Selection.ClearContents
Application.ScreenUpdating = True
End Sub
Mais la véritable solution consiste en VBA à aller droit au but comme ceci :
Sub ClearPlage()
Range("B3,C3,D3,D14").ClearContents
End Sub
Si on travaille sur multi feuille par contre on précisera quelle feuille
Sheets("Toto").Range("B3,C3,D3,D14").ClearContents
C'est plus simple et surtout plus rapide d'exécution.
Bon Samedi Soir
@+Thierry