attendre quelques secondes pour execuder une ligne de code

Sophie11

XLDnaute Occasionnel
Hello ;) J'ai une macro qui s'execute trop rapidement et quand à la fin elle met en dur mes cellules, parfois le calcul n'est pas terminé et j'obtient un REF au lieu de ma vrai valeur.
J'avais pensé mettre :
Application.Wait Now + TimeValue("00:00:03")

mais ca interrompt mes calculs :(
Ce que je souhaite c'est attendre quelques seconde pour pouvoir execuder ma derniere ligne de code de ma macro:
Sheets("test").Range("A2:A5") = Sheets("test").Range("A2:A5").Value

Si vous avez une idée??
Merci :p
 

Sophie11

XLDnaute Occasionnel
Re : attendre quelques secondes pour execuder une ligne de code

Merci de ta reponse mais impossible d'envoyer un exemple j'utilise des fonctions avec des API de logiciels sous licences.
Je vais essayer de reformuler mon soucis:

Je veux que ma macro s'arrete s'arrete et puis repart. :p :p
J'ai testé Application.Wait Now + TimeValue("00:00:03") mais ca ne marche pas car ca suspend tous les calculs :(
Si vous avez des idées?
 

Papou-net

XLDnaute Barbatruc
Re : attendre quelques secondes pour execuder une ligne de code

Hello ;) J'ai une macro qui s'execute trop rapidement et quand à la fin elle met en dur mes cellules, parfois le calcul n'est pas terminé et j'obtient un REF au lieu de ma vrai valeur.
J'avais pensé mettre :
Application.Wait Now + TimeValue("00:00:03")

mais ca interrompt mes calculs :(
Ce que je souhaite c'est attendre quelques seconde pour pouvoir execuder ma derniere ligne de code de ma macro:
Sheets("test").Range("A2:A5") = Sheets("test").Range("A2:A5").Value

Si vous avez une idée??
Merci :p

Bonjour Sophie11,
Bonjour pierrejean,

Sophie,

Ton problème me paraît bizarre, car je pense qu'une macro termine toujours les calculs en cours avant de continuer.

A ta place, j'essaierais de modifier ta ligne ainsi :

Code:
Sheets("test").Range("A2:A5")[COLOR="Red"][B].Value[/B][/COLOR] = Sheets("test").Range("A2:A5").Value

Cordialement.
 

Sophie11

XLDnaute Occasionnel
Re : attendre quelques secondes pour execuder une ligne de code

J'utilise une fonction faisant appel à une grosse database et j'ai dans ma cellule marqué "Requesting...." et je dois attendre quelques secondes avant d'avoir ma valeur, d'où mon souci :(
 

Papou-net

XLDnaute Barbatruc
Re : attendre quelques secondes pour execuder une ligne de code

J'utilise une fonction faisant appel à une grosse database et j'ai dans ma cellule marqué "Requesting...." et je dois attendre quelques secondes avant d'avoir ma valeur, d'où mon souci :(

RE :

Difficile d'être plus précis sans connaître l'intégralité de ta macro.
Mais je viens de me rendre compte que la ligne citée ne sert apparemment pas à grand-chose, puisque tu affectes à une plage la valeur de cette même plage ?

Désolé de ne pouvoir t'aider davantage.

Cordialement.
 

Sophie11

XLDnaute Occasionnel
Re : attendre quelques secondes pour execuder une ligne de code

oui papou net mais à la base ma plage contient des formules que je convertie en dur. Pour pouvoir etre exploiter de different pose ;)
Donc vous avez aucune idée pour qu'une macro puisse s'arreter et puis repartir ou bien faire executer une 2ieme macro ??
 

Papou-net

XLDnaute Barbatruc
Re : attendre quelques secondes pour execuder une ligne de code

oui papou net mais à la base ma plage contient des formules que je convertie en dur. Pour pouvoir etre exploiter de different pose ;)
Donc vous avez aucune idée pour qu'une macro puisse s'arreter et puis repartir ou bien faire executer une 2ieme macro ??

RE :

Il me vient une idée : essaies de transférer ta macro dans la procédure événementielle AfterUpdate de ta feuille.

Espérant avoir aidé.

Cordialement.
 

Sophie11

XLDnaute Occasionnel
Re : attendre quelques secondes pour execuder une ligne de code

le probleme c'est que ma macro contient des formules qui fais executer ma requete.
J'ai par contre une idée, si je créer une 2ieme macro ca marche super bien. Est il possible d indiquer à ma macro initiale d executer une 2ieme macro?
 

13GIBE59

XLDnaute Accro
Re : attendre quelques secondes pour execuder une ligne de code

Bonjour Sophie, salut tout le monde. :)

Trouvé sur l'aide de vba concernant la fonction 'wait' :

Cet exemple montre comment suspendre l'exécution d'une macro pendant environ 10 secondes.
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime

J'espère que cela te conviendra.

Pour l'aide de vba :
Dans un module, tape le mot, place ton point d'insertion dans le mot, et appuie sur la touche F1.
 

Discussions similaires

Statistiques des forums

Discussions
312 435
Messages
2 088 398
Membres
103 839
dernier inscrit
Patounet66