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

REINITIALISATION en dynamique

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

CHRIS

Guest
bonjour, j'ai trois fichier excel, dont le premier (que l'on va appeler BILAN) qui appele des valeurs dans deux autres. Or un de ses fichiers (TEST) varie en fonction du temps (il est enregistre en continue, par un autre programme, soit toute les secondes, soit toutes les 10s etc...)
Or pour que les valeurs soient mis a jour automatiquement dans mon premier fichier (BILAN), je suis obligee de reouvrir a chaque fois mon ficheir test...
Est -il (et si oui comment?) possible d'avoir les mis a jour en temps reel dans BILAN sans pour cela avoir besoin d'ouvrir le fichier test?
merci beaucoup pour votre aide....
ou alors serait il possible de faire re ouvrir mon fichier 'test' toutes les secondes par exemple?
merci d'avance
 
En fait, ce sont des liaisons que tu as à mettre à jour.
Dans ce cas, tu places une macro qui s'exécutera toutes les x secondes pour mettre à jour les liaisons de ton classeur Bilan, comme ceci

'code à placer dans un module standard
Option Explicit
Dim H
Sub LiensAJour()
Dim Liens
On Error Resume Next
With ThisWorkbook
Liens = .LinkSources(xlExcelLinks)
If Not IsEmpty(Liens) Then .UpdateLink Liens
End With
'je l'appelle toutes les 10 secondes ici
H = Now + TimeValue('00:00:10')
Application.OnTime H, 'LiensAJour'
End Sub

'Cette macro est à appeler juste avant de fermer le fichier
Sub DetruitLiensAJour()
On Error Resume Next
Application.OnTime H, 'LiensAJour', , False
End Sub

Quant à la macro DetruitLiensAJour, tu l'appelles depuis une procédure BeforeClose que tu places dans Thisworkbook :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
DetruitLiensAJour
End Sub

Message édité par: Ti_, à: 26/04/2005 17:17
 
merci beaucoup , je vais essayer cela tout de suite (meme si je ne suis pas sure de tout avoir compris, je n'ai jamais fais de macro excel 😉
je te tiens au courant et en tout cas, encore merci pour ton aide!
 
:unsure: oups ca ne fonctionne pas, peut etre n'ai-je pas tout fait correctement.........
je n'avais pas precise que le fichier test etait un fochier CSV, cela a peut etre une importance.....
merci de votre aide
cordialement
 
merci Ti_, ta macro semble fonctionner correctement puisque toutes les 10s j'ai un message 'fichier non trouve'!. Sais tu comment je pourrais faire pour avoir un lien correct avec mon fichier test qui n'est pas un fichier xls comme les deux autres fichiers mais un fichier .CSV
Merci d'avance, ton aide est tres appreciable
cordialement
 
Si tu importes des données depuis un fichier csv, je suppose que tu passes par le menu Données...Données externes...Importer des données.
Dans ce cas, après avoir défini ta requête, tu retournes dans ce menu et tu sélectionnes 'Propriétés de la plage de données'. Là tu peux définir les paramètres qui te permettront de déterminer l'actualisation automatique des données.
Le délai minimum d'actualisation est de 1 minute, mais c'est déjà pas mal.
D'autre part, n'oublie pas de décocher l'option 'demander le nom du fichier à l'actualisation', sinon une boîte de dialogue s'ouvrira à chaque fois. Ensuite tout se fait tout seul !
 
en fait, pour importer mes donnees, je faisais dans ma case du premiere fichier =INDEX(test.CSV!D😀;NBVAL(test.CSV!D😀)) (car je veux la derniere ligne ecrite par mon programme)
je vais essayer de faire avec donnees externes. Meme si je prefererai avoir un fichier actualise plus souvent, il est vrai que toutes les minutes c'est toujours mieux que rien. En tout cas merci beaucoup pour ton aide... je teste ta solution
CHRIS
 
On pourrait contourner cette limitation en ouvrant par macro le fichier toutes les 10 secondes par ex, quoique cela risquerait de devenir très lourd, mais le problème avec un fichier csv. c'est que ce format est une véritable chienlit. D'une machine à l'autre (et j'en sais quelque chose) les arguments à passer pour ouvrir correctement ces fichiers ne sont plus les mêmes, donc je préfère ne pas me lancer à te donner une macro pour faire ça, tu aurais toutes les chances pour que ça ne marche pas chez toi.
Essaie de créer une requête, je crois que ce sera plus simple pour toi.

Maintenant, on pourrait aussi ouvrir le fichier par une procédure spécialement écrite pour la circonstance, mais là encore, sans connaître exactement le contexte d'utilisation de ces fichiers, leur format exact etc, on court tout droit à des complications.
 
🙂 d'accord, merci, je vais essayer de faire cela, on verra bien si cela fonctionne... en tout cas, il est vrai que , comme mon 'programme' est pour une manip de laboratoire; il serait plus pratique qu'elle fonctionne sur n'importe quel PC.... vu qu'un PC n'est pas eternel B) en tout cas, encore merci pour tes conseils,
je te tiens au courant de mes 'progres' , je suis sure que tu meurs d'envie de savoir si je vais ENFIN y arriver!!!
 
merci Ti_, pour tes conseils... tout fonctionne parfaitement , j'ai bien une reactualisation toutes les minutes. Seulement voila, un autre probleme vient de ma'apparaitre,, lorsque mon fichier de donnees est ouvert il devient figé , mon programme n'ecrit plus dedans! du coup, la mise a jour deviens bien inutile. Je crois que je vais etre obligee de faire ouvrir et refermer mon fichier a chaque fois... n'aurais tu pas une petite idee? car je n'ai absolument aucune idee de comment faire 😉
 
tu veux dire que tu l'ouvres aussi dans Excel ? Normalement le fichier peut rester fermé (depuis Excel) l'actualisation des données se fait quand même. Moi j'ai fait des tests durant lesquels je modifiais mon csv depuis un éditeur de texte, Excel était capable de récupérer ces données en même temps.

Sinon, comme je te le disais hier, écrire une procédure qui va chercher les données directement dans ton fichier suppose qu'on connaisse à la fois la structure de ce fichier csv, et celle de ton fichier Bilan, sinon c'est la galère assurée.
 
en fait, j'importe les donnees dans une feuille de mon classeur, puisque je dois recuperer apres dans mon bilan la derniere ligne, je ne pensais pas non plus que le fichier etait considere comme ouvert, seulement voila, ce matin en faisant un essai j'ai remarque que si mes donnees etaient importees sur ma Feuil2, le programme n'ecrivait plus dans le fichier test.csv.....
peut etre ai-je mal importe les donnees???
Sinon, je connais parfaitement la structure des deux fichiers....
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
316
Réponses
6
Affichages
321
Réponses
15
Affichages
762
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…