[Excel/VBA]ecrire un fichier .txt

Fermé
Hoxus Messages postés 4 Date d'inscription lundi 15 mai 2006 Statut Membre Dernière intervention 17 mai 2006 - 15 mai 2006 à 18:24
 Pipo858 - 13 mars 2008 à 15:56
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.
A voir également:

7 réponses

Hoxus Messages postés 4 Date d'inscription lundi 15 mai 2006 Statut Membre Dernière intervention 17 mai 2006 6
16 mai 2006 à 13:52
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 :(


4
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
16 mai 2006 à 14:26
Normalement, la macro fait correctement son boulot.
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
0
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
2
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
16 mai 2006 à 12:12
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
1
ce que tu a fait dans la description me sauverai la vie, mais le lien est mort... si jamais tu as encore les infos, tu pourrai les renvoyer stp???
0
Hoxus Messages postés 4 Date d'inscription lundi 15 mai 2006 Statut Membre Dernière intervention 17 mai 2006 6
17 mai 2006 à 11:17
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 ...
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Hoxus Messages postés 4 Date d'inscription lundi 15 mai 2006 Statut Membre Dernière intervention 17 mai 2006 6
16 mai 2006 à 14:50
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...
0
Gihef Messages postés 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 778
16 mai 2006 à 19:26
Bonjour,

En passant. Au cas où.

“F As Integer” ?
N'aurais-tu pas oublié de fermer le fichier la 1re fois ?

En passant. Pour essayer de relancer.
0
Bonjour,
c'est presque ce qui me faut ^^ en effet dommage que le lien soit mort :s
0