Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Retardement le lancement d une macro

  • Initiateur de la discussion Initiateur de la discussion mimy
  • Date de début Date de début

mimy

XLDnaute Occasionnel
Bonjour,

Je suis en train de réaliser un fichier excel qui récupère des cours d indices via un site internet.
Grâce à l aide de personnes de ce site, j ai pu réaliser à bien ce fichier mais je voudrais l optimiser.
Le problème c est que la "connexion" entre le site est mon fichier est lente et les valeurs mettent quelques secondes à s afficher. D où le message Debug dès l ouverture de mon fichier.
Je voudrais savoir si dès l ouverture de mon fichier on peut mettre un timer (je suppose dans workbook_open) et qui prend en compte ma macro qui est dans ma Feuil1 qui s appelle Private sub Worksheet_Calculate().
J ai ecrit dans ThisWorkbook:

private sub WorkBook_open()
Application.Ontime Now+TimeValue("00:00:10"), "Worksheet_Calculate"
v=Sheets("Feuil1").range("B7").value ' j actualise mes valeurs de cours d indices
end sub

mais ça ne marche pas.

Dans d autres sites il y a des exemples où la macro se trouve dans un module et ça marche contrairement à ma macro dans ma Feuil1

Merci beaucoup
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Retardement le lancement d une macro

Re,

la macro "calcula" est une procédure événementielle, pour mettre le calcul sur ordre, à placer dans le module "thisworkbook", événement "open" :
Code:
Application.Calculation = xlCalculationManual

pour rétablir la calcul auto, à associer à ton bouton :
Code:
Application.Calculation = xlCalculationAutomatic
 

mimy

XLDnaute Occasionnel
Re : Retardement le lancement d une macro

Donc si je comprends bien, il faut que
- je dessine un rectangle qui sera mon bouton
- je laisse le code worksheet_calculate dans la feuil1
- puis j ecris ça dans this workbook:
Option Explicit
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
Application.Calculation = xlCalculationAutomatic
v=Sheets("Feuil1").Range("B7").value
End Sub

- et dans mon module standart:
Option Explicit
Public v As Double

peut être que je dis des betises...
 

Pierrot93

XLDnaute Barbatruc
Re : Retardement le lancement d une macro

Re,

non, dans l'événement "open"
Code:
Option Explicit
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
End Sub

et dans un modle standard, une macro associé à ton bouton :
Code:
Option Explicit
Public v As Double
Sub Test
v=Sheets("Feuil1").Range("B7").value
Application.Calculation = xlCalculationAutomatic
End Sub

+ le code dans le module de la feuille....
 

mimy

XLDnaute Occasionnel
Re : Retardement le lancement d une macro

re,

J ai ecrit ce que tu avais fait, je n ai plus le message d erreur mais je suis obligée de rafraichir à la main mes cellules qui contiennent les liens....
 

mimy

XLDnaute Occasionnel
Re : Retardement le lancement d une macro

Bonjour Pierrot,

J ai rajouté ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources dans le module mais ça bug. Je ne sais pas pourquoi
 

Discussions similaires

Réponses
17
Affichages
1 K
Réponses
4
Affichages
555
Réponses
2
Affichages
278
Réponses
10
Affichages
490
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…