Actualisation automatique de données excel (OnTime
Résolu/Fermé
Lucie
-
Modifié le 29 mai 2018 à 08:51
Lucie_6
Lucie_6
- Messages postés
- 4
- Date d'inscription
- mardi 29 mai 2018
- Statut
- Membre
- Dernière intervention
- 30 mai 2018
A voir également:
- Excel actualiser automatiquement
- Actualiser un fichier excel automatiquement - Meilleures réponses
- Actualiser feuille excel automatiquement - Meilleures réponses
- Actualisation automatique des cellules ✓ - Forum - Excel
- Actualisation automatique de données excel (OnTime ✓ - Forum - Excel
- Macro actualisation auto TCD ✓ - Forum - Excel
- Excel actualisation automatique des formules ✓ - Forum - Excel
- Excel actualisation automatique des cellules ✓ - Forum - Excel
1 réponse
eriiic
Modifié le 29 mai 2018 à 09:17
- Messages postés
- 24393
- Date d'inscription
- mardi 11 septembre 2007
- Statut
- Contributeur
- Dernière intervention
- 26 mai 2022
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
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
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
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
29 mai 2018 à 09:31
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 ... " ...
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)
29 mai 2018 à 09:50
29 mai 2018 à 12:11
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.
Sauf que Application.DisplayAlerts = True risque de ne pas être exécuté s'il est après .Close.
Tu perds tous les autres messages d'alerte...
Donc si je comprend bien, ta technique de rafraîchissement bloque la mise à jour des données.
C'est bien beau de masquer l'alerte, mais tu vas mettre quoi à jour s'il n'y a qu'1/100e de tes données à jour ? Quelque chose m'échappe là...
Et ici encore je me demande si le .close n'y est pas pour qq chose.
Il faut du temps pour exécuter une requête. En plus ça dépend de l'état du réseau à ce moment là, plus ou moins disponible.
Si ça se confirme il faudra attendre la fin du RefreshAll avant de fermer.
Je ne suis pas un spécialiste des requêtes mais pour les autres lecteurs précise quel type de requête tu fais.
Pour l'actualisation, en fait personne n'écrit dans le classeur
Imagine : je suis en train d'écrire dans Word. Ton fichier s'ouvre et se met en avant plan. Ce que je saisissais part dans excel, écrase une cellule, et se ferme dans la foulée.
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()))
si [Date prevue] change et que tu es en calcul automatique ta formule se met à jour toute seule normalement non ?
J'ai du mal à voir le lien avec le pb et pourquoi tu parles de ça
29 mai 2018 à 14:24
Du coup j'ai le code suivant (dans le module 1) :
Sub UpdateClock()
Application.DisplayAlerts = False
ActiveWorkbook.RefreshAll
Application.OnTime Now + TimeValue("00:00:20"), "UpdateClock"
ThisWorkbook.Save
End Sub
Le soucis c'est que la macro ne s'effectue plus lorsque le classeur est fermé alors que je pensait que l'événement OnTime persistait même classeur fermé ... As-tu une solution ?
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()))
si [Date prevue] change et que tu es en calcul automatique ta formule se met à jour toute seule normalement non ?
J'ai du mal à voir le lien avec le pb et pourquoi tu parles de ça
C'était juste un exemple mais j'ai d'autres données qui se mette à jour, d'où l'utilité de ma macro :)