[Excel/VBA]ecrire un fichier .txt
Hoxus
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Pipo858 -
Pipo858 -
Bonjour,
Je souhaiterais faire une macro qui, à partir d'une feuille excel remplie de données, enregistre plusieurs fichiers .txt après avoir travaillé sur les données.
Le travail consiste principalement à de la mise en forme, car les fichiers seront soumis à des logiciels de statistiques qui ne prennent pas le même type de fichiers en entrée (certains une ligne de description spécifique, d'autres sont comma séparé, etc...).
Mais je bute sur l'enregistrement en .txt
J'ai donc créé (en fait copié du web et légèrement modifié) une petite macro pour voir si cela fonctionnait, et elle me génère des erreurs. La voici:
Private Sub AjoutDonnee()
Dim F As Integer
ChDir "C:\"
F = FreeFile
Open "C:\new.txt" For Append As #F
Print #F, "bonjour"
Close #F
End Sub
Lorsque le fichier new.txt n'existe pas, j'obtiens l'erreur excel "53: Fichier Introuvable". J'ai pourtant lu que si le fichier n'existait pas, il serait créé.
De plus, si je créais le fichier manuellement (via l'explorateur Windows), j'obtiens alors l'erreur "54: mode d'accès au fichier incorrect".
Je ne vois vraiment pas d'où peut venir le problème, j'ai pourtant cherché dans pas mal de forums et aides en ligne.
Merci d'avance,
Hoxus.
Je souhaiterais faire une macro qui, à partir d'une feuille excel remplie de données, enregistre plusieurs fichiers .txt après avoir travaillé sur les données.
Le travail consiste principalement à de la mise en forme, car les fichiers seront soumis à des logiciels de statistiques qui ne prennent pas le même type de fichiers en entrée (certains une ligne de description spécifique, d'autres sont comma séparé, etc...).
Mais je bute sur l'enregistrement en .txt
J'ai donc créé (en fait copié du web et légèrement modifié) une petite macro pour voir si cela fonctionnait, et elle me génère des erreurs. La voici:
Private Sub AjoutDonnee()
Dim F As Integer
ChDir "C:\"
F = FreeFile
Open "C:\new.txt" For Append As #F
Print #F, "bonjour"
Close #F
End Sub
Lorsque le fichier new.txt n'existe pas, j'obtiens l'erreur excel "53: Fichier Introuvable". J'ai pourtant lu que si le fichier n'existait pas, il serait créé.
De plus, si je créais le fichier manuellement (via l'explorateur Windows), j'obtiens alors l'erreur "54: mode d'accès au fichier incorrect".
Je ne vois vraiment pas d'où peut venir le problème, j'ai pourtant cherché dans pas mal de forums et aides en ligne.
Merci d'avance,
Hoxus.
A voir également:
- [Excel/VBA]ecrire un fichier .txt
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
7 réponses
Merci beaucoup à Armojax de s'etre penché sur mon problème. Créer la macro a du te prendre un certain temps!!!
Après l'avoir testé tel quel, la macro ne fait rien. Si je désactive (par des ' ) la suppression et le renommage de l'ancien fichier (sinon la macro ne s'executait pas car il n'existait pas encore), j'obtiens l'affichage d'une MsbBox m'indiquant que la convertion s'est effectué (comme prévu), sauf qu'il n'y a aucun fichier dans mon répertoire.
Si je désactive aussi l'affichage des erreurs, je retombe sur la même erreur:
erreur 53, fichier introuvable
Et si le fichier txt (FicTexte.txt) existe déjà, alors j'ai de nouveau l'erreur 54.
J'ai en fait l'impression que le problème ne vient pas d'un problème de code mais plutot de droit d'accès ou de création d'un fichier, ou directement du chemin d'accès.
Mais je ne vois pas quoi :(
Après l'avoir testé tel quel, la macro ne fait rien. Si je désactive (par des ' ) la suppression et le renommage de l'ancien fichier (sinon la macro ne s'executait pas car il n'existait pas encore), j'obtiens l'affichage d'une MsbBox m'indiquant que la convertion s'est effectué (comme prévu), sauf qu'il n'y a aucun fichier dans mon répertoire.
Si je désactive aussi l'affichage des erreurs, je retombe sur la même erreur:
erreur 53, fichier introuvable
Et si le fichier txt (FicTexte.txt) existe déjà, alors j'ai de nouveau l'erreur 54.
J'ai en fait l'impression que le problème ne vient pas d'un problème de code mais plutot de droit d'accès ou de création d'un fichier, ou directement du chemin d'accès.
Mais je ne vois pas quoi :(
Bonjour,
Jai créé un fitre sur une feuille (feuille4)
J'aimerai que le resultat de ce filtre avec le bouton s'affiche sur la feuille 1
commen dois-je proceder.. ???
Merci bcp
Jai créé un fitre sur une feuille (feuille4)
J'aimerai que le resultat de ce filtre avec le bouton s'affiche sur la feuille 1
commen dois-je proceder.. ???
Merci bcp
Bonjour Hoxus,
On peut faire un enregistrer sous... en format texte d'une feuille de classeur Excel. Evidemment, on n'a pas trop le choix de la mise en forme.
Pour du spécifique, le mieux est une macro.
Je t'ai fait un petit exemple, avec les spécifs suivantes :
- on crée une ligne de texte par ligne de cellules Excel
- la première ligne (entêtes de colonnes) n'est pas écrite
- les champs sont tous alignés, en complétant si nécessaire à droite avec des blancs
- il n'y a pas de séparateurs de champs (mais on peut en mettre, bien sûr)
- le fichier texte est créé dans le même répertoire que le classeur
- la version précédente est renommée avec une extension . bak, avec suppression de la version .bak antérieure.
Ça ne te conviendra pas forcément, c'est une façon de faire parmi d'autres...
C'est ici :
https://www.cjoint.com/?fqmalkvXhy
On peut faire un enregistrer sous... en format texte d'une feuille de classeur Excel. Evidemment, on n'a pas trop le choix de la mise en forme.
Pour du spécifique, le mieux est une macro.
Je t'ai fait un petit exemple, avec les spécifs suivantes :
- on crée une ligne de texte par ligne de cellules Excel
- la première ligne (entêtes de colonnes) n'est pas écrite
- les champs sont tous alignés, en complétant si nécessaire à droite avec des blancs
- il n'y a pas de séparateurs de champs (mais on peut en mettre, bien sûr)
- le fichier texte est créé dans le même répertoire que le classeur
- la version précédente est renommée avec une extension . bak, avec suppression de la version .bak antérieure.
Ça ne te conviendra pas forcément, c'est une façon de faire parmi d'autres...
C'est ici :
https://www.cjoint.com/?fqmalkvXhy
Ce n'est pas du au fait de ne pas avoir fermé le fichier avant car ça plante dès la première utilisation.
Par contre j'ai réussi à contourner le problème en utilisant le système
activesheet.save as ...
Par contre j'ai réussi à contourner le problème en utilisant le système
activesheet.save as ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je bosse sur un portable sous Win XP pro patché SP2 et Office Xp pro.
Je ne connais pas d'option pour activer/désactiver l'écriture de fichier, que se soit avec Win (sauf lecture seule, mais elle est inactive) ou Office.
Donc je cherche...
Je ne connais pas d'option pour activer/désactiver l'écriture de fichier, que se soit avec Win (sauf lecture seule, mais elle est inactive) ou Office.
Donc je cherche...
Je ne connais pas ton contexte, mais je pencherais aussi pour des questions d'accès.
Tes erreurs correspondent à :
- 53 : Fichier introuvable
- 54 : Mode d'accès au fichier incorrect