Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Application.ScreenUpdating

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mécano41

XLDnaute Accro
Bonsoir,

J'ai une instruction "Application.ScreenUpdating=False" qui ne fait pas son office dans une routine VBA.

Quelqu'un connaîtrait-il une raison pour qu'elle soit inefficace? (instruction contradictoire...)

Merci d'avance

Cordialement
 
Re : Application.ScreenUpdating

2 possibilités :

'Cas 1 on crée la formule puis on la tire
Sheets("feuil1").Range("A1").FormulaR1C1 = "=Feuil2!R[2]C-Feuil3!R[2]C"
Selection.AutoFill Destination:=Range("A3:A1000"), Type:=xlFillDefault


'cas2: on sélectionne la plage puis on la remplit
Range("A3:A1000").Select
Selection.FormulaR1C1 = "=Feuil2!R[2]C-Feuil3!R[2]C"


A mon avis, on ne peut pas par contre tirer sur toute la colonne dans la mesure où les feuilles 2 et 3 démarrent à la 3ème ligne et non pas à la 1ère comme la feuille 1
 
Re : Application.ScreenUpdating

Bonsoir,

Mecano41, tu n'es pas nouveau ici. Donc tu dois savoir que ta question déconnectée de son environnement a peu de chance de trouver une réponse...

D'ailleurs patte d'ours en a perdu son orientation😛

Cordialement
 
Re : Application.ScreenUpdating

Bonjour,

Je n'avais rien joint car je cherchais une réponse générale. Dans une application, après avoir fait des modifications, un problème est apparu. J'ai d'abord cru à une erreur mais en avançant progressivement, j'en suis arrivé au petit essai joint dans lequel je ne comprends pas pourquoi après un Application.ScreenUpdating = False, les modifications d'écran apparaissent quand même. Je n'avais jamais observé ce problème. J'ai cru un moment que la sortie du sub produisait un Application.ScreenUpdating = True (je ne vois pas pourquoi), mais ce n'est pas cela.

Ou bien c'est énorme et je ne vois rien 😡 ou bien il y a un problème dans mon EXCEL (j'ai parfois des blocages dans l'environnement VBA).

Si quelqu'un a une idée... merci d'avance

Cordialement
 

Pièces jointes

Re : Application.ScreenUpdating

bonjour, en faite je ne comprend pas ton probleme,
tu indique dans ta macro de remplir une celulle, il est normal que celle ci se remplisse.

Le Application.ScreenUpdating sert a masquer le traitement, de passage d'une feuille a une feuille entre autre, mais visuellement, on est obligé de voir.

(sauf si tu met en couleur de police blanc) et la ça sera vraiment invisible.

Enfin j'ai peut etre pas compris lol dur dur ce matin
 
Re : Application.ScreenUpdating

Bonjour mécano41, spit, patte d'ours, le forum,

C'est normal, si tu as recopié dans ton fichier test, la même chose que dans ton fichier origine, tes instructions sont inversées et une est mal placée.

Private Sub CommandButton1_Click()
' essai1()
Application.ScreenUpdating = True
Range("A1").Value = "1111"
Application.ScreenUpdating = False
Range("A2").Value = "2222"
End Sub

Il te faut : Private Sub CommandButton1_Click()
' essai1()
Application.ScreenUpdating = False
Range("A1").Value = "1111"
Range("A2").Value = "2222"
Application.ScreenUpdating = True
End Sub

Revoir ton fichier.

Bonne journée

Jean-Pierre

PS : Pour répondre à jpmasclet que je salue, non sommes d'accord, mais je n'ai pas abordé ce point en considérant qu'il s'agissait d'un exemple test et que dans la réalité il s'agit d'autre chose que d'écrire quelques infos. dans la feuille.
 
Dernière édition:
Re : Application.ScreenUpdating

Bonjour le forum

Je suis comme toi jpmasclet j'ai beau essayé de comprendre la demande je n'yarrives pas.
La macro fonctionne correctement. Peut être veut il passer par un calcul intermédiaire sans son affichage

Attente d'info plus claires
Bonne journée
 
Re : Application.ScreenUpdating

Bonjour,

Merci pour ces réponses.

Ce que je veux faire, c'est :

- dans une feuille affichée, écrire dans des cellules, modifier des formats de colonnes, etc... mais que tout cela se prépare sans modification visible à l'écran (temps plusieurs secondes)

- à la fin, après le temps de traitement, l'écran doit se mettre à jour d'un seul coup.

Pour ce faire :

- j'avais mis une instruction Application.ScreenUpdating=False au début du sub de lancement de l'application

- au début du sub de traitement, j'avais une instruction Application.ScreenUpdating=True, car j'avais une cellule à sélectionner par un InputBox. J'avais une instruction Application.ScreenUpdating=False juste après InputBox

-à la fin du sub de lancement, j'avais une instruction Application.ScreenUpdating=True pour afficher l'écran mis à jour

Cela fonctionnait mais ne fonctionne plus et je ne vois pas pourquoi.

Cordialement
 
Re : Application.ScreenUpdating

Re,
Bonjour jeanpierre, jpmasclet, Diggerjack,

Totalement d'accord avec vous...
J'ai cru un moment que la sortie du sub produisait un Application.ScreenUpdating = True
Effectivement, une fin de procédure remet l'affichage à True.

Pourquoi ne mets tu pas le code qui te pose problème plutôt qu'un ersatz sans rapport...😕

Car le code que tu as indiqué fonctionne parfaitement bien : toutes ses réactions sont conformes à ce que tu as indiqué; ce qui est normal.

Cordialement
 
Re : Application.ScreenUpdating

Bonjour,

Je me suis emmêlé les crayons en recherchant l'erreur.

En remettant des "Application.ScreenUpdating=False" au début de chaque sub appelé, cela fonctionne comme prévu.

Merci à tous


Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 problème CHDIR
Réponses
59
Affichages
2 K
Réponses
7
Affichages
263
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…