Lignes de code non exécutées?!

Gixeo Messages postés 3 Date d'inscription lundi 25 octobre 2010 Statut Membre Dernière intervention 25 octobre 2010 - 25 oct. 2010 à 11:01
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 - 25 oct. 2010 à 15:33
Bonjour,

Si quelqu'un as un petit peu de temps à m'accorder, j'ai un problème que je n'arrive pas a résoudre...

A la fin d'une macro assez lourde (ouvrant, copiant et refermant des fichiers plutot lourds et enregistrant un fichier Visio en .htm) je souhaite modifier le fichier Widgets.htm généré par un autre que j'ai auparavant modifié?



Pour le remplacer j'utilise cette instruction à la fin de ma macro :

'Suppression du fichier "widgets.htm" d'origine.
    Kill (DestinationWidgets)

    'Copie le fichier "widgets Mod Zoom.htm" et le colle sous le nom de "widgets.htm"
    'à l'emplacement du fichier "widgets.htm" d'origine.
    FileCopy SourceWidgets, DestinationWidgets


Lorsque je lance ma macro en pas à pas, aucun problème, tout s'éxécute a merveille, le fichier widgets est bien supprimé puis remplacé par celui que j'ai modifié?
Mais lorsque je l'exécute simplement (avec F5) c'est une toute autre histoire? cette partie de code n'est tout simplement pas réalisé?
Je ne reçois aucun message d'erreur, mais le fichier que je souhaite supprimer ne l'est pas, et le copier collé de celui modifié n'est aps réalisé!

Mon PC etant tres poussif je me suis dis que l'instruction "Sleep" pourrais m'aider, histoire de la laisser souffler, mais cela ne change rien...

Quelqu'un aurais une idée?

Merci.

5 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
25 oct. 2010 à 11:26
Pas Sleep qui suspend l'exécution en cours, mais plutôt DoEvents qui rend la main au système et qui peut lui laisser le temps, peut-être de faire la suppression avant que tu ne lance la copie


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
Gixeo Messages postés 3 Date d'inscription lundi 25 octobre 2010 Statut Membre Dernière intervention 25 octobre 2010
25 oct. 2010 à 11:39
euh... Pourrais tu m'expliquer comment utiliser DoEvents?
Cela ne fais pas tres longtemps que je programme.
Et l'aide de MS Office n'est pas réellement mon amie...
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
25 oct. 2010 à 12:01
Tu rajoute simplement l'instruction DoEvents sur la ligne qui suit Kill(...)

DoEvents permet de rendre la main quelques ms au système pour que celui-ci traite diverses actions comme par exemple rafraichir l'écran, traiter les évènements en attente, etc, ....

Cela se fait normalement entre chaque instruction, mais il arrive, dans des boucles par exemple que l'exécution des instructions soit enchainée sans que le système ait la possibilité de reprendre la main. Une des conséquence c'est par exemple dans des boucles longues, d'avoir l'écran de l'application qui devient tout blanc, ou Windows qui indique que l'application ne répond plus. De mettre un DoEvents dans la boucle, permettra de rafraichir l'écran ou de traiter les messages que Windows envoie à l'application et évite ainsi de donner l'impression que l'application est plantée

Il n'est pas dit que ça solutionne ton problème, mais le système ayant un tout petit peu plus de temps, pourra faire la suppression du fichier avant que tu n'essaye de faire la copie.


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
Gixeo Messages postés 3 Date d'inscription lundi 25 octobre 2010 Statut Membre Dernière intervention 25 octobre 2010
25 oct. 2010 à 12:59
Bon, je n'ai plus cette impression de "plantage" déjà merci!
Mais pour ce qui est du "Kill FileCopy", l'instruction n'est toujours pas éxécutée...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
25 oct. 2010 à 15:33
Salut,

t'aurais pas un "On error ..." plus haut ? qui t’empêcherait de voir le problème !

de plus le le kill s’écrit sans les parenthèses:

Kill DestinationWidgets



A+
0
Rejoignez-nous