![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: mars 2007
Localisation: Romorantin-Lanthenay
Version Excel : Excel XP (PC)
Messages: 305
|
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 |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: octobre 2007
Messages: 116
|
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 |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: décembre 2006
Version Excel : Excel 2003 (PC)
Messages: 2 262
|
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
__________________
Ne pas oublier d'effectuer une recherche dans les pages "questions-les-plus-frequentes-faq-et-didacticiels" avant de poser une question. La réponse s'y trouve bien souvent. |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: mars 2007
Localisation: Romorantin-Lanthenay
Version Excel : Excel XP (PC)
Messages: 305
|
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 |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: octobre 2006
Messages: 227
|
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 |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Sortie ouest Le mans 6 km
Version Excel : Excel 2000 (PC)
Messages: 7 384
|
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.
__________________
En toutes circonstances, il faut savoir juger jusqu'où on peut aller trop loin. Si vous êtes satisfait des réponses qui vous sont données. Si vous souhaitez que cette énorme base de connaissance Excel puisse vous accompagner longtemps encore.... Aidez-la. C'est ici : http://www.excel-downloads.com/forum...orter-xld.html Dernière modification par jeanpierre ; 09/11/2007 à 09h17. |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: juillet 2006
Messages: 301
|
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
__________________
Diggerjack |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: mars 2007
Localisation: Romorantin-Lanthenay
Version Excel : Excel XP (PC)
Messages: 305
|
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 |
|
|
|
|
|
#10 (permalink) | |
|
XLDnaute Barbatruc
Date d'inscription: décembre 2006
Version Excel : Excel 2003 (PC)
Messages: 2 262
|
Re,
Bonjour jeanpierre, jpmasclet, Diggerjack, Totalement d'accord avec vous... Citation:
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
__________________
Ne pas oublier d'effectuer une recherche dans les pages "questions-les-plus-frequentes-faq-et-didacticiels" avant de poser une question. La réponse s'y trouve bien souvent. |
|
|
|
|
|
|
#11 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: mars 2007
Localisation: Romorantin-Lanthenay
Version Excel : Excel XP (PC)
Messages: 305
|
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 |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Application.ScreenUpdating = False | pierrejean | Forum Excel | 2 | 22/06/2006 09h03 |
| Application.ScreenUpdating | ninou58 | Forum Excel | 8 | 13/04/2006 14h34 |
| Application.ScreenUpdating = False | hélène | Forum Excel | 1 | 24/11/2005 11h12 |
| Application.ScreenUpdating | Luc | Forum Excel Downloads - Archives | 0 | 01/09/2003 21h11 |
| Application.ScreenUpdating | Moa | Forum Excel Downloads - Archives | 2 | 10/07/2003 13h39 |