Synchronisation de fichier avec modification en auto
Bonjour,
Voici mon problème. J’ai un serveur (gestion d’énergie) qui me génère un fichier CSV par jour. Les données de ce fichier, il faut les modifier avec le menu convertir d’Excel (tous sur une ligne avec virgule (pas de souci là-dessus))
Mes questions :
1° Est-il possible d’aller chercher en automatique les données de ces fameux fichiers lors de l’ouverture du fichier Excel (base).
2° 2 solutions : les mettre à chaque fois dans une nouvelle feuille ou les mettre à la suite (voir le plus facile)
3 ° de convertir les données en automatique (macro)
4° prendre certaines de ces données pour faire un graphique jour ou moyenne de la journée
Les données sont des suivis de ma consommation électrique (intensité, relevée des compteurs HC HP)
Espérant d’avoir été claire sur mon explication
Merci d’avance pour vos réponses
Sébastien
Salut et bienvenue sur le Forum,
Je pense que la solution dot être assez simple, en tout cas en ce qui concerne tes points 1 à 3.
Mais il faudrait avoir à disposition
- un fichier CSV tel qu’il se présente après sa création
- le fichier Excel dans lequel tu récoltes les données (avec déjà les anciennes données en place)
Est-ce que les fichiers CVS à traiter ainsi que le fichier Excel de base se trouvent dans le même dossier de ton arborescence ? Si non, est-ce possible qu’ils le soient à l’avenir ?
Cordialement.
Bonjour,
Voici le fichier source CSV et le fichier global (rapport)
J'ai un fichier CSV qui ce crée chaque jour. mon fichier rapport ce trouve sur mon PC et les fichier CSV sur le serveur.
Merci pour ton aide
Sébastien
Salut,
Désolé pour mon mutisme, mais ces derniers temps je suis surchargé.
J’ai voulu commencer à m’occuper de tes fichiers, mais il y a encore un certain nombre de choses que j’aimerais savoir, à condition que ta demande soit toujours d’actualité :
Tu dis qu’un serveur génère un fichier CVS par jour. Comment se présente le dossier dans lesquels ils sont générés ? Est-ce que les fichiers journaliers sont effacés chaque jour ? Restent-ils en place dans le dossier après avoir été traités (donc après avoir été repris dans ton fichier ‘Rapport’) ? Y a-t-il d’autres fichiers que les fichiers CVS générés automatiquement dans ce dossier ?
En admettant que je place une macro dans le fichier ‘Rapport’ qui permettrait d’aller traiter le ou les fichiers CVS nécessaires, comment se ferait la chose ? Faut-il que tu puisses choisir toi quel(s) fichier(s) CVS doivent être traités à chaque fois ? Ou ne faut-il traiter que le seul dossier CVS en place dans le dossier concerné ? Ou ne faut-il traité que le plus récent fichier CVS en place dans le dossier ? Ou ……. ?
A te relire.
NB : Comme déjà dit, je suis assez occupé ces temps. Tu risques de devoir attendre quelques jours sur ma réponse. Si tu es pressé, il vaut mieux chercher une autre solution.
Bonsoir,
Pas de souci pour ton mutisme (j'ai le temps), mon projet est toujours d'actualité.
Le serveur crée un fichier par jour il ce trouve dans le dossier TELEINFO et le fichier est nommé par la date de relevé (TI2014-10-25.CSV pour le 25 oct 2014) ces fichiers reste sur le serveur. Dans le dossier TELEINFO du serveur ce trouve un autre fichier de relevé 2014TELE.CSV.
Mon principe de fonctionnement
1 J'ouvre mon fichier "RAPPORT"
2 Soit par un action de ma part ou automatiquement, il va rechercher le ou les fichiers précédents(au cas ou j’oublierai de l'ouvrir pendant X jours).
3 Il convertit et sépare les données. Un jour, une feuille dans excel
4 Il crée un graphique dans la feuille du même jours
Si cela et difficile ou pas réalisable, je te laisse le simplifier
Espérant que mon explication est assez claire.
Merci pour ton aide.
Sébastien
Re,
J’ai pu avancer un peu avec ta demande. Comme je ne connais pas ton niveau en ce qui concerne les macros, je ne sais pas trop ce qu’il faut t’expliquer et ce que tu sais déjà.
Pour des premiers essais, il faudrait que tu corriges dans la macro le chemin en fonction de ton arborescence. J’ai indiqué la ligne concernée par le commentaire ‘A ADAPTER = …………….
Si tu ne sais pas le faire, dis-le-moi et on pourra voir par la suite. Dans un tel cas, tu peux quand même tester ma macro en plaçant provisoirement le fichier ci-joint dans le même dossier que tes fichiers .cvs ou en déplaçant quelques dossiers .cvs dans un dossier provisoire.
Si tu ne modifies pas le chemin tel qu’indiqué ci-dessus, ma macro devrait fonctionner ainsi :
Elle commence par prendre note de la date du dernier fichier reporté dans la colonne A de la feuille ‘Base’ du fichier ‘Rapport’.
Elle passe en revue tous les fichiers contenu dans le dossier dans lequel est placé ce fichier de base et elle contrôle si le nom des dossiers ‘visités’ commence par ‘TI’ ou non. Si le nom ne commence pas par ‘TI’, ces fichiers sont ignorés, autrement un deuxième contrôle est effectué afin de voir si la date des fichiers visités est inférieure à la date du dernier fichier reporté relevée en début de macro. Si ces fichiers ont déjà été reportés, ils sont également ignorés.
Les dossiers postérieurs à cette date limite sont quant à eux ouverts d’une manière invisible, leurs données sont copiées et collées sur une nouvelle feuille créée automatiquement dans le fichier ‘Rapport’.
Ces nouvelles feuilles créées sont renommées à chaque fois selon le nom du fichier visité.
Les dates des fichiers visités sont reportées à la suite des autres sur la feuille ‘Base’ du fichier ‘Rapport’ afin de ne plus être traités une deuxième fois.
Et voilà.
Pour l’instant je ne me suis pas occupé des graphiques ni de la mise en page des feuilles nouvellement créées. On verra ça par la suite. A ce propos, serait-il envisageable de placer les graphiques sur la même feuille que les données, tout au fond, en faisant en sorte qu’ils soient visibles à l’écran lors de la sélection de la feuille ?
Teste déjà cette première partie du travail et dis-moi ce qu’il en est.
Afin de pouvoir faire de nouveaux essais, tu dois peut-être effacer des feuilles nouvellement créées car ma macro ne peut pas renommer une feuille deux fois identiquement et tu dois également aussi peut-être effacer des dates dans la colonne A de la feuille ‘Base’.
Pour réutiliser ce fichier en 2015, il faudra indiquer le 31.12.2014 dans la cellule A2 de la feuille ‘Base’ et effacer toutes les dates en-dessous.
Je pense que lorsque tu auras un très grand nombre de feuilles dans ton fichier, ça deviendra vite pénible. Il faudra alors éventuellement voir si tu veux déplacer chaque mois les feuilles dans un fichier archive (éventuellement par une autre macro). Ou est-ce qu’une solution serait de placer toutes les données à la suite les unes des autres sur une seule feuille et tous les graphiques à la suite les uns des autres sur une seconde feuille ?
A te relire.
Bonsoir,
Merci pour ton aide.
J'ai un petit problème, il ne veut pas prendre mon chemin d'accée. j'ai 2 solutions soit adresse IP ou chemin comme une adresse internet. Aucune deux deux fonctionnes réponse " erreur de syntaxe" ou "erreur de compilation Attendu : numéro de ligne ou étiquette ou instruction ou fin d'instruction"
Mon niveau est bas, je débute.
Merci pour ton aide et ta réactivité.
Sébastien
Aussi. Est il possible de taper mon identifiant et mot de passe en automatique.
Merci encore
A te lire.
Sébastien
Salut Sébastien,
Je présume que mon fichier fonctionne chez toi lorsque tu utilises le chemin que j’ai mis en place (ThisWorkbook.Path) – ce serait important et sympa de le dire - mais qu’il ne fonctionne pas si tu tentes d’indiquer un autre chemin.
Il faudrait donc que tu me dises ce que tu tentes d’indiquer comme nouveau chemin – un tout petit signe qui manque et plus rien ne va - mais également ce qui ne fonctionne pas à ce moment-là (est-ce que la macro se déroule sans que rien ne se passe ? Est-ce que la macro bloque à un certain endroit ? Dans ce dernier cas, il faudrait dire sur quelle ligne de code ça bloque. Sais-tu comment le constater ?).
Je ne sais pas ce que tu veux dire par tes deux solutions (''soit adresse IP ou chemin comme une adresse internet'').
Et est-ce que ta question au sujet du mot de passe a à voir avec l’une des deux solutions mentionnées ci-dessus ou avec l’ouverture ‘’normale’’ de tes fichiers .cvs ?
A te relire.
Bonsoir,
Le fichier fonctionne parfaitement avec ThisWorkbook.Path mais des le changement de celui-ci la ligne ce mais en rouge avec le petit message COMPILATION ATTENDU : numéro de ligne ou étiquette ou instruction ou fin d'instruction"
Voici la copie de la ligne avec mes données (voir copie d’écran fichier word )
Merci pour ton aide et ton temps passé.
Cordialement
Sébastien
Ah, d’accord !
Je pensais que tu avais indiqué un chemin, que tu avais lancé la macro et que ça bloquait. Mais en fait ça bloque avant même que tu aies pu lancer la macro.
Si une ligne se met en rouge au moment où tu l’écris, ça veut dire que la syntaxe est incorrecte, que Excel ne peut pas reconnaitre une telle ligne de code
De mon côté j’ai été imprécis et j’ai indiqué : ‘A remplacer par le chemin de ton dossier’. En fait j’aurais dû indiquer ‘A remplacer par le chemin du dossier dans lequel tu as tes fichiers .cvs’.
Ainsi, si tu veux faire référence au chemin de ce dossier dans ton arborescence, tu peux en chercher la dénomination de cette manière, selon l’image jointe :
Tu vas dans ton Explorateur de dossiers, tu choisis le dossier dans lequel tu as placé tes fichiers .cvs (dans mon image, le dossier a_abc) et tu effectues un clic-droit sur la ligne de ce dossier. Tu choisis l’option ‘Propriétés’ et sous ‘Emplacement’, tu as le chemin désiré. Dans mon exemple, la ligne Chemin = ThisWorkbook.Path & "\" serait à remplacer par Chemin = "C:\Users\lacy\Documents\"
Attention : comme tu supprimes la VARIABLE ThisWorkbook.Path (les variables s’écrivent toujours à l’extérieur de guillemets), tu peux également supprimer le signe & et tu places le texte copié dans l’explorateur à l’intérieur du guillemet d’ouverture, juste avant le signe \.
Peut-être as-tu essayé d’inscrire l’adresse d’un site internet comme ‘Chemin’. Je dois alors t’avouer que je ne sais absolument pas si un tel raccourci est possible ou non.
Cordialement.
Bonsoir Yvouille,
J'ai un autre petit problème, mais avec la ligne suivante (voir fichier joint)
Merci pour ton aide
Sébastien
Re,
Je trouve toujours que tu pourrais dire deux mots au sujet des nouveautés que je t’ai proposées ; est-ce que ça t’a permis d’avancer ? Est-ce l’adresse d’un site internet que tu indiques comme chemin ? Etc.
Pour ton nouveau problème, tu es également très avare de renseignements. Ca peut bloquer à cette ligne lors du premier passage comme ça peut fonctionner pour 153 fichiers et bloquer sur le 154ème.
Quant est-il alors ?
Lorsque tu as effectué ta copie d’écran, tu avais le curseur placé – probablement par hasard – sur un texte ‘Date_Référence’ et une fenêtre minuscule s’est alors ouverte par-dessus ta macro pour t’indiquer que la variable ‘Date_Référence’ avait la valeur 31/10/2014 à ce moment-là.
De la même manière, peux-tu voir quelle est la valeur de la variable ‘Fichier_traité’ la prochaine fois que le code bloque ? Il se peut que la valeur soit nulle.
Si tu pouvais effectuer des copies d’écran à l’aide d’un programme qui te permettrait de placer ces images directement dans le message – comme je l’ai fait le 8 novembre – ce serait plus facile à les consulter. De plus, essaie de ne copier que l’extrait nécessaire de la macro.
Amicalement.
Bonjour,
Désolé pour mon explication furtive.
Voila, j'ai des problèmes avec la ligne du liens pour donner la direction du dossier. Le problème précédent et résolut avec les "" sur le liens, mais maintenant c'est la ligne suivante en jaune (voir fichier joint) avec le curseur au bon endroit.Désolé, je n'arrive pas à insérer l'image.
Quand je l'utilise ton macro dans un dossier avec toutes les sources dans le même dossier, il fonctionne nickel.
Merci pour ton temps passé pour moi
A te lire
Sébastien
Salut,
Je crois que l’on a de la peine à se comprendre. Ou est-ce toi qui ne me comprends pas ?
Je te demande quelques explications de plus, mais tu ne me dis pas un mot au sujet de ton chemin. Est-ce une adresse internet ou le chemin de ton fichier ? Si c’est le chemin de ton fichier, envoie-moi s’il te plait une copie d’écran identique à celle que je t’ai fournie le 8 novembre sur laquelle je peux constater son ‘Emplacement’.
Je te demande de mettre ton curseur sur la variable ‘Fichier_traité’ lorsque la macro bloque et que tu m’envoies une copie d’écran de ta ligne en jaune, mais tu mets ton curseur sur la variable ‘Chemin’ qui vient d’être alimentée sur la ligne juste en-dessus. Je vois donc deux fois sur ton image la même information ‘Chemin = ’’ftp://……………’’.
Ou est-ce que le problème vient du fait que tu as rajouté ‘cvs’ à la ligne Fichier_traité = Dir(Chemin & "*.*") ?? Dans ce cas-là, il me semble que je t’avais demandé quels étaient les fichiers qui pouvaient se trouver dans ce dossier en plus des fichiers à visiter et que tu avais été très clair à ce sujet. Pourquoi essaies-tu alors de modifier mon code ?
Je pense que tu dois jouer cartes sur table et ce sera plus facile à te suivre. De plus, si la situation se complique un peu trop, je me permettrai de laisser tomber.
Amicalement.
Bonsoir Yvouille,
Pour me connecter au dossier "TELEINFO" qui ce trouve sur mon serveur, je tape l'adresse IP 192.168.1.19 à la suite, j'ai l'identifiant et le mot de passe à saisir d'ou le liens
Chemin = "
"
Mais la seconde ligne de commande reste en jaune. Pour avancer sur le sujet, j'ai essayer plusieurs possibilités d'ou " Fichier_traité = Dir(Chemin & "*.csv*")" avec ou sans .csv cela ne fonctionne pas
Mon curseur indique sur la ligne jaune Fichier_traité = ""
Suite au changements, quand j'utilise ton bouton "REPORT" il m'indique une erreur "ERREUR EXÉCUTION 52" suivie de "Nom et numéro de fichier incorrect"
Au sujet du chemin "comme indiqué dans ton message" je ne peux pas le faire, c'est un liens ethernet et non physique( interne). Je pensais que tu avais compris mon explication.
Voilà, je pense avoir répondu à toutes tes questions.
Je comprend qu'il n'est pas facile de me comprendre.
Je ne suis pas expert dans le sujet et si tu veux laissé tomber, je comprendrai.
Restant à ta disposition.
Sébastien
Bonsoir Yvouille,
Pour me connecter au dossier "TELEINFO" qui ce trouve sur mon serveur, je tape l'adresse IP 192.168.1.19 à la suite, j'ai l'identifiant et le mot de passe à saisir d'ou le liens
Chemin = "
"
Mais la seconde ligne de commande reste en jaune. Pour avancer sur le sujet, j'ai essayer plusieurs possibilités d'ou " Fichier_traité = Dir(Chemin & "*.csv*")" avec ou sans .csv cela ne fonctionne pas
Mon curseur indique sur la ligne jaune Fichier_traité = ""
Suite au changements, quand j'utilise ton bouton "REPORT" il m'indique une erreur "ERREUR EXÉCUTION 52" suivie de "Nom et numéro de fichier incorrect"
Au sujet du chemin "comme indiqué dans ton message" je ne peux pas le faire, c'est un liens ethernet et non physique( interne). Je pensais que tu avais compris mon explication.
Voilà, je pense avoir répondu à toutes tes questions.
Je comprend qu'il n'est pas facile de me comprendre.
Je ne suis pas expert dans le sujet et si tu veux laissé tomber, je comprendrai.
Restant à ta disposition.
Sébastien
Salut,
Mon code fonctionne parfaitement si tu as dans ton arborescence un dossier quelconque qui contient les fichiers à visiter tel que tu m’avais indiqué et que tu fais correctement référence au chemin de ce dossier (en remplacement de ThisWorkbook.Path qui est bien entendu une solution intéressante si tous les fichiers sont placés dans le même dossier).
Par contre si tu dois atteindre des dossiers spéciaux avec des mots de passe, j’avoue être dépassé (à moins que ce ne soit toi qui n’aies simplement pas pu m’expliquer ton problème).
Indique éventuellement ton fil comme ‘Résolu’ – en cliquant sur le petit V vert dans l’un de tes messages – et recommence-en un autre en étant bien précis dès le début sur ton besoin.
Cordialement.