Copie au format .CSV

Bonjour à tous,

Cela fait quelque jours que je m'acharne sans trouver de réponse à mon problème.

Je vous présente le fichier et la finalité de celui ci:

Le premier onglet est un formulaire d'enregistrement de patients, après saisie, le bouton Enregistrer copie les données dans l'onglet Export_Patients par incrémentation.

A réception du fichier, j'enregistre sous format .csv (séparateur point virgule) l'onglet Export_Patient que je dépose ensuite sur un FTP ou il est intégré par mon système informatique.

J'aimerai pouvoir automatiser cette tache, a savoir enregistrer sous .csv l'onglet Export_Patients, en conservant le même nom de fichier et en l'enregistrant dans le même dossier que le fichier d'origine, sans l'ouvrir automatiquement. Puis que le classeur actuel se ferme.

Je n'arrive pas a automatiser tout cela avec les enregistrent de Macro, étant donné que les fichiers changent de nom en permanence (25 intégrations par jours environ).

Idéalement, mais je ne pense pas cela possible, générer un second fichier, style .txt, au nom identique, mais avec une extension en .ok pour valider le dépôt de fichier dans mon répertoire ftp.

image

Merci pour l'aide que vous pourrez m'apporter.

Bien à tous,

Tom

Bonjour

Ci joint une proposition (si j'ai bien compris la demande)

fermeture du fichier actuel à la fin du code avec enregistrement

Fred

En relisant la demande

A réception du fichier, j'enregistre sous format .csv

de quel fichier ???

Je n'arrive pas a automatiser tout cela avec les enregistrent de Macro, étant donné que les fichiers changent de nom en permanence (25 intégrations par jours environ).

je ne suis pas sur d'avoir bien compris...

pour le moment le code fournit fait l'enregistrement de l'onglet Export_Patients au format csv... sous le nom fixe 202008121351PosteD.csv....

merci de préciser la demande car je penses que j'ai pas tout compris...

faire une copie de fichier en .ok ne pose a priori pas de problème... mais comment valider la dépose du fichier sur le FTP ?

Fred

Bonjour et merci pour vos premières réponses.

A réception du fichier, j'enregistre sous format .csv

Ce sont des fichiers que l'on me transmet à intervalle régulier, chaque fichier à un nom unique ( date + horodatage + poste dédié A B C etc) en fonction du poste d'accueil sur lequel est réalisée la saisie et de l'heure à laquelle on clôture l'enregistrement.

Export_Patients au format csv... sous le nom fixe 202008121351PosteD.csv...

C'est mon principal problème, je n'arrive pas a ce que le fichier .csv porte a chaque fois le même nom que le fichier duquel il proviens

Voici un exemple des fichiers déjà traités manuellement (les fichiers txt sont créés et changés en .ok manuellement avant depot sur le ftp) :

image

mais comment valider la dépose du fichier sur le FTP ?

Cela reste manuel, pas de soucis, je déplace les fichiers un a un ensuite.

Je souhaite simplement que le .csv et .ok soit crées dans le même répertoire que le fichier .xml d'origine.

J’espère que c'est plus clair, si ce n'est pas réalisable je continuerai le traitement manuel des fichiers, après tout cela ne va durer que 15j, à 25 fichiers par jours...

Merci,

Re bonjour...

pour moi il manque toujours une étape pour la compréhension...

Je souhaite simplement que le .csv et .ok soit crées dans le même répertoire que le fichier .xml d'origine.

il y a donc un fichier source qui est fournit plusieurs fois par jour.. OK d'après la citation précédente il est au format xml ??

c'est là que cela me pose problème... ce fichier on lui fait quoi ?? il faut peut-être l'ouvrir.. copier des données quelque part dans le fichier excel qui doit probablement faire un traitement.... pour en suite exporter l'onglet Export_Patients au format csv et doit porter le même nom que le fichier source... c'est ça ??

pour moi il me manque des explications pour tout comprendre....

Fred

Re,

Ce fichier sert à des agents de saisie pour enregistrer des patients lors des campagnes de dépistages. Cela permet d'avoir l'enregistrement sans avoir à former et habiliter les agents à de la saisie complexe sur note logiciel métier.

Le .CSV me permet ensuite de les injecter dans mon système informatique pour générer les dossiers patients correspondant afin de réaliser les analyses.

Effectivement l'étape recevoir, ouvrir etc. je ne comptait pas l'automatiser, j'ai omis de le préciser. Je penser lancer la macro depuis le fichier après vérification de l'intégrité des données, ou clic sur le bouton Export patient du formulaire par exemple.

Les fichiers sources sont au format .xlsm pas xml... c'est sur qu'avec des informations aussi moisies, difficile de m'aider.

Les étapes en clair, on m'envois le fichier 202008121150PosteB.xlsm, je l'ouvre, vérifie les données visuellement, et a partir de la je souhaite automatiser la création du .CSV dans le même dossiers, même nom + le fichier .ok, même nom.

chaque fichier que je recois à un nom unique, je n'ai pas de fichier source avec un nom fixe.

Cette fois ci j’espère avoir été bcp plus clair. Sur ce je file injecter les derniers fichiers du jour.

Merci !

Ahhh oui en effet c'est plus clair...

je vais donc pouvoir faire quelque chose

Fred

Me revoici donc...

si j'ai bien compris... c'est ce fichier au format xlsm qui sera donner aux collaborateurs comme fichier de départ... et c'est ce fichier qui sera fournit plusieurs fois par jours.. et aura un nom du type : 202008121150PosteB.xlsm

le bouton bleu dans l'onglet Export_Patients permettra de faire l'export csv et au format .ok et de fermer le fichier

Fred

C'est juste Magique !!

Déployé sur tous les postes ce matin avant l'ouverture...

Un grand merci Fred! Je reviens vers toi après le première injection.

Bonjour Fred,

Lorsque j’exécute la macro dans le fichier reçu, j'ai cette erreur :

image

Pourtant les fichiers sont issues du même fichier source à la base.

Je dois remplacer feuil6 par le nom de la feuille Export_Patients ?

Merci à toi,

Bonjour

Feuil6 correspond au Codename de la feuille Export_Patients sur le fichier fournit...

excelpratique

Si dans ton fichier original... Export_Patients ne correspond pas à feuil6 comme sur l'image ci dessus... corrige le code pour que la correspondance soit bonne...

sinon remplace

Feuil6.copy

par

sheets("Export_Patients").copy

Fred

Voici le fichier testé,

image

J'ai entre temps testé avec

sheets("Export_Patients").copy

J'ai bien la création d'un nouveau classeur mais une nouvelle erreur:

image image

Si c'est plus simple, le fichier .CSV et le .OK peuvent avoir un nom différent du classeur source (ajout de csv dans le nom par exemple, ou autre, peut importe)

Le .CSV et le .OK doivent juste être identiques.

Je suis désolé, mais effectivement, je n'aurai jamais trouvé tout seul...

Merci pour ta patience!

Hum...

le problème vient de l'enregistrement du Csv... le message est clair... impossible d'enregistrer sous le même nom d'un fichier ouvert.. cela veut dire que le fichier csv existe déjà et est ouvert par excel...

ferme toutes tes fenêtres excel.. et ouvre seulement 202008131009posteF.xlsm

et ensuite re-essai...

Fred

[EDIT]

Tout est bon !!! Un énorme merci!

Le dernier bug venais de l'emplacement du Fichier. LE fait d'enregistrer sur un OneDrive faisait planter la creation du .ok

C'est résolu.

Merci encore +++

il faudrait voir ce que donne les variables fich_dest et fich_dest2..

dans le code sélectionne la première variable. et fait clique-droit => ajouter un espion

même chose avec la 2e variable...

lance le code et quand cela plante met ce que tu as... cela devrait ressembler à :

excelpratique

Chez moi j'ai pas de soucis...

Fred

Je viens de voir que tu as éditer ton message...

bonne continuation

Fred

Zut désolé je t'ai encore fait bosser pour rien.

3 min entre le post est l'Edit, t'es redoutable!

Merci milles fois en tout cas !

Bah... c'est les vacances... on s'occupe comme on peut... à défaut de partir quelque part... et puis il faut trop chaud pour aller dans le jardin...

Fred

Bonnes vacances alors! Ici aussi il fait chaud, enfin partout en ce moment.

Prenez soin de vous et le jardin en ce moment c'est pas plus mal... à la fraîche!

Thomas.

Bonjour Fred ( et les autres !),

Si jamais tu repasse près de mon sujet, je tenais avant tout a te remercier.

Ton aide sur le fichier à été très précieuse, et il va encore être utilisé à plus grande échelle d'ici peu.

J'aurai a nouveau besoin de ton (votre) aide, le fichier aurai besoin d'une évolution pour faciliter son déploiement mais je ne sais pas trop comment m'y prendre sans casser ton code:

- comment puis-je faire pour que le CSV et le .OK se génèrent dans un répertoire séparé du fichier source ( sous répertoire dans le répertoire du dossier source).

par ex:

image

A l'export, les fichiers .CVS et le .ok se créent dans le dossier CSV GDS (toujours dans le même dossier), avec un horodatage dans le nom, ce qui me permettrai de mettre en task un .bat qui transférerai automatiquement les 2 fichiers vers mon répertoire de lecture.

- Que le fichier source s'enregistre avec le même horodatage, se ferme et que le fichier vierge s'ouvre a nouveau, prêt à une nouvelle saisie. (ou une réinitialisation de la feuille Excel Export patient? ce qui éviterai une fermeture ouverture du fichier ? Et dans ce cas la, je copierai en double le .CSV pour sauvegarde.

N'hésitez pas si je ne suis pas clair dans mes explication (ça deviendrai une habitude? )

Thomas

Rechercher des sujets similaires à "copie format csv"