Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1686 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [vba]Optimisation du code pour la rapidité (résolu)

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[vba]Optimisation du code pour la rapidité (résolu)

n°820219
AssiuM
Citoyen n°8904
Posté le 11-08-2004 à 12:52:38  profilanswer
 

Bonjour,
 
j'ai créé un programme dont la fonction principale est de remplir et de créer des dizaines zones sur une page... Seulement, le programme mets près de 5 secondes sur un ordinateur récent à faire sa routine, et plus de 35 secondes sur l'ordinateur sur lequel il devra tourner.
 
Est-il possible d'optimiser le code ?
 
Voici le code pour une zone qui est répété des dizaines de fois...
 

Code :
  1. ActiveDocument.Shapes.AddTextbox(msoTextOrientationHorizontal, CentimetersToPoints(0.6), CentimetersToPoints(0.8), CentimetersToPoints(5), CentimetersToPoints(0.4)).Select
  2. Selection.ShapeRange.TextFrame.TextRange.Select
  3. Selection.ShapeRange.Fill.Visible = msoFalse
  4. Selection.ShapeRange.TextFrame.MarginLeft = 0#
  5. Selection.ShapeRange.TextFrame.MarginRight = 0#
  6. Selection.ShapeRange.TextFrame.MarginTop = 0#
  7. Selection.ShapeRange.TextFrame.MarginBottom = 0#
  8.     Selection.ShapeRange.Line.Weight = 0.75
  9.     Selection.ShapeRange.Line.DashStyle = msoLineSolid
  10.     Selection.ShapeRange.Line.Style = msoLineSingle
  11.     Selection.ShapeRange.Line.Transparency = 0#
  12.     Selection.ShapeRange.Line.Visible = msoFalse
  13. Selection.Collapse
  14. Selection.TypeText Text:=NomTextbox.Text


 
Optimisation pour une meilleure vitesse d'exécution possible ?
 
Merci  :bounce:


Message édité par AssiuM le 11-08-2004 à 13:19:28
mood
Publicité
Posté le 11-08-2004 à 12:52:38  profilanswer
 

n°820229
-Farenheit​-
Posté le 11-08-2004 à 13:05:04  profilanswer
 


Avant de commencer à créer tes zones :
 
Application.ScreenUpdating = False
 
et a la fin :  
Application.ScreenUpdating = True
 
==> Ca évitera de redessiner toutes les zones 1 par 1 au cours de la génération...

n°820239
AssiuM
Citoyen n°8904
Posté le 11-08-2004 à 13:13:51  profilanswer
 

-Farenheit- a écrit :

Avant de commencer à créer tes zones :
 
Application.ScreenUpdating = False
 
et a la fin :  
Application.ScreenUpdating = True
 
==> Ca évitera de redessiner toutes les zones 1 par 1 au cours de la génération...


 
merci !!!! impressionnant ça prend maintenant plus que 6 secondes au lieu de 35  :ouch:  :ouch:  
 
chapeau bas  :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [vba]Optimisation du code pour la rapidité (résolu)

 

Sujets relatifs
que pensez vous de ce code ?[C/C++] compiler un code C avec un compilo C++
replace[resolu][VBA]Passer d'une zone de texte à une autre (résolu)
[Résolu à 50%]Librairie MIDI multiplateforme[resolu] La zone de données passée à un appel système est insuffisante
Grep? besoin de la colonne d'une seq recherchee: RESOLUConvertir un Char* en WCHAR* ? [résolu]
pourquoi la racine fait jamais comme les autres ? [TreeView] [resolu ] 
Plus de sujets relatifs à : [vba]Optimisation du code pour la rapidité (résolu)


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR