Est ce possible de mettre un timing entre 2 instructions vba

Résolu/Fermé
mcstayhi99 Messages postés 33 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 25 février 2014 - 21 févr. 2014 à 13:02
mcstayhi99 Messages postés 33 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 25 février 2014 - 25 févr. 2014 à 16:35
Bonjour,

Voici ma macro :

Sub Macro1()
'
' Macro1 Macro
'

'
ActiveWorkbook.Unprotect
ActiveSheet.Unprotect

ActiveSheet.PivotTables("Tableau croisé dynamique1").RefreshTable

ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
True, AllowUsingPivotTables:=True
ActiveWorkbook.Protect Structure:=True, Windows:=False
End Sub


est ce possible d'executer la protection apres un timing, par exemple 10 seconde, le temps que le tcd s'actualise.

Merci beaucoup pour vos réponse
A voir également:

3 réponses

sipherion Messages postés 1809 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
21 févr. 2014 à 13:16
http://www.laissemoichercherca.com/?q=delay%20vb

Sleep 2500

Où 2500 = 2,5 sec
0
mcstayhi99 Messages postés 33 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 25 février 2014
21 févr. 2014 à 16:29
J'ai essaye avec sleep sa me donne un probleme de compilation meme si je met la declaration de sleep :

Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

Merci
0
sipherion Messages postés 1809 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
21 févr. 2014 à 16:33
Chez moi ça marche.

Il faut bien que tu mettes sleep et sa déclaration dans le même module.


Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub test()

MsgBox("Instant T0")

Sleep 2000

MsgBox("Instant T0 + 2s après avoir cliqué sur OK")

End Sub


0
mcstayhi99 Messages postés 33 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 25 février 2014
21 févr. 2014 à 16:37
Merci sa fonctionne mais il faut mettre
Sleep (2000)

Merci beaucoup
0
sipherion Messages postés 1809 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
21 févr. 2014 à 16:38
Ha OK ^^ Heu lol chez moi ca marche sans mettre entre () :)
Mais de rien, a bientôt =)
0
mcstayhi99 Messages postés 33 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 25 février 2014
21 févr. 2014 à 16:50
il y a aussi cette possibilité :

Application.Wait (Now + TimeValue("0:00:10"))
0
midouexcel Messages postés 34 Date d'inscription vendredi 14 février 2014 Statut Membre Dernière intervention 19 février 2016 4
21 févr. 2014 à 22:54
Bonsoir,
Je voulais savoir en quoi ce macros nous aide?
surtout qu'on peut actualiser un TCD depuis le TCD en une seule action
0
mcstayhi99 Messages postés 33 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 25 février 2014
22 févr. 2014 à 10:22
bonjour,

oui on peut le faire mais pas quand le TCD est protégé.
0
sipherion Messages postés 1809 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
25 févr. 2014 à 14:32
Rajoutes un Call devant chacun de tes appels de macro dans appel().

VBA signale l'erreur sur quelle ligne de quelle macro quand tu cliques sur "débogage" ?
0
mcstayhi99 Messages postés 33 Date d'inscription mardi 11 février 2014 Statut Membre Dernière intervention 25 février 2014
25 févr. 2014 à 16:35
c bon j'ai trouvé d'ou provenait le probleme, je devais réactiver la field list avant d'actualiser.

et pour le call c'est pas obligatoire de le mettre, sa fonctionne sans.

merci beaucoup pour votre aide.
0