Actualisation automatique de données excel (OnTime

Résolu/Fermé
Lucie - Modifié le 29 mai 2018 à 08:51
Lucie_6 Messages postés 4 Date d'inscription mardi 29 mai 2018 Statut Membre Dernière intervention 30 mai 2018 - 30 mai 2018 à 08:16
Bonjour,

J'ai crée un code afin d'actualiser automatiquement tous les x temps les données d'un fichier Excel grâce à ActiveWorkbook.RefreshAll et Application.OnTime Now + TimeValue ("00:10:00"), "UpdateClock. Durant 1j mon code à parfaitement fonctionné que le classeur soit fermé ou ouvert, il se mettait à jour tous les x temps. Cependant, lorsque j'ai réouvert ma session le lendemain, la macro ne fonctionnait plus et j'ai désormais le message d'erreur " Impossible d'exécuter la macro "S:\.......". Il est possible qu'elle ne soit pas disponible dans ce classeur ou que toutes les macros soient désactivées." Ce qui n'est pas le cas étant donnée que mon code fonctionnait parfaitement pendant 1j.

Voici mon code vba si quelqu'un sait où le bug se situe ...

Public Sub Actualisation_de_données()
Application.DisplayAlerts = False
ActiveWorkbook.RefreshAll
NextTick = Now + TimeValue("00:10:00")
Application.OnTime Now + TimeValue("00:10:00"), "UpdateClock"
ThisWorkbook.Save
ThisWorkbook.Close
OnAction = "Feuil1.messagerie"
Application.DisplayAlerts = True
End Sub


A voir également:

1 réponse

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
Modifié le 29 mai 2018 à 09:17
Bonjour,

j'ai désormais le message d'erreur " Impossible d'exécuter la macro "S:\.......".

Pour laquelle des 2 ?
UpdateClock est bien dans le même module ou un module Standard ?

Rien à voir avec ton pb mais 2 choses me gênent :
- tes 2 lignes de code après ThisWorkbook.Close
Pourquoi pas avant si tu veux qu'elles soient exécutées ?
- ton classeur va se rouvrir au bout de 10 min.
Il y a un risque qu'une cellule soit écrasée si qq'un est en train d'écrire et ne s'aperçoit pas qu'il vient de passer en avant-plan non ?
eric

1
Bonjour Eric, merci pour ta réponse !

Tout le code écrit ci-dessus est dans le même module (module1).

En fait lorsque je lançait ma macro j'avais un message d'erreur "cette action va annuler une actualisation des données en attente. Voulez-vous continuer ?" du coup après mettre renseigner sur Google j'ai vu que si je mettais les lignes de codes "Application.DisplayAlerts = False ..... Application.DisplayAlerts = True" au début et à la fin de mon code le message disparaitrait, ce qui a été le cas.

Pour l'actualisation, en fait personne n'écrit dans le classeur, ce sont des formules prenant les données d'une requête qui s'actualise automatiquement, du coup c'est pour que les résultats des formules s'actualisent, eux aussi automatiquement. Je m'explique, une requête est déposé par le service info sur le réseau, elle s'actualise et écrase les anciennes données par les nouvelles toutes les x minutes. J'ai créer un fichier excel en insérant une requête via un fichier CSV (requête qui est déposé sur le réseau) et sur des cellules au dessus de ma requête j'ai écrit mes formules pour avoir les chiffres que je souhaitait avoir (par ex, nombre de commandes par jour (=NB.SI(req_bp2[Date prevue];"="&AUJOURDHUI())) et ce sont ces formules qui doivent se mettre à jour automatiquement lorsque la requête se met elle à jour. (je ne sait pas si j'ai été assez clair :) ). Ce que je ne comprend pas c'est que mon code fonctionnait, puis d'un coup, plus rien ... Et même quand j'essaie d'ouvrir un fichier excel vierge puis écrire une macro test histoire de voir si le pb vient de mon fichier ou d'Excel ça me met le même message d'erreur " Impossible d'executer la macro ... " ...
0
Lucie_6 Messages postés 4 Date d'inscription mardi 29 mai 2018 Statut Membre Dernière intervention 30 mai 2018
29 mai 2018 à 09:41


Voici la fenêtre VBA avec le message d'erreur qui s'affiche lors de la ré ouverture du fichier une fois l'exécution du code (pour du coup le ré exécuter vu que c'est une boucle et que l'évènement OnTime persiste)
0