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

Erreurs pour écrire un fichier .txt avec VB

  • Initiateur de la discussion Initiateur de la discussion Hoxus
  • 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 !

H

Hoxus

Guest
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 ont une première 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.
 
Ceci n'est pas une réponse.
C'est juste pour te dire que je cherche à faire la même chose (pour ADE4), et j'ai aussi des erreures en utilisant un autre code (j'ai posté mon message après le tien... donc patience 🙂
 
Je regarderai tes réponses, mais je doute que cela puisse m'aider.
En effet, j'ai de plus en plus l'impression que le problème ne vient pas du code (qui est épuré pratiquement au maximun) mais plutot d'un souci dans les droit d'accès ou de création de fichier... 🙁
Mais je ne sais pas si ça existe, et si oui, comment le régler. :sick:
 
Bonjour à tous

Dans la majorité des cas, ce prob est du pour la simple et bonne raison que vous n'avez pas le droit en 'création de fichier' à l'endroit ou vous essayez de le mettre

Le mieux c'est d'essayer en c:\\temp (s'il existe)
ou à un endroit ou vous savez que vous pouvez créer un fichier (essayer de créer un fichier manuellement en guise de test)

Après, éventuellement revenir sur le forum si d'autres prob...
 
Bonjour,

Pour enregistrer un classeur en .txt délimité, tu peux utiliser :


ActiveWorkbook.SaveAs Filename:='Mon fichier.txt', FileFormat:=xlCSV, CreateBackup:=False

Pour créer un fichier et y enregistrer des données :

Sub toto()
Open 'C:\\temp\\tempo.txt' For Output As #1 ' Ouvre le fichier.
Print #1, 'bonjour'
Close #1
End Sub


Tout vient à point ...

Papaye
 
Bonjour Bertrand,

Oui tu as raison, mais dans le cas de Hoxus, il essaye d'écrire dans un fichier qui n'existe pas encore ... d'où l'erreur 53

S'il crée son fichier et qu'il essaye d'y écrire, alors, c'est le mode d'accès qu'Excel ne reconnait pas (append ...) le fichier doit d'abord être ouvert par un open avant de pouvoir y écrire.

Comme je le disais encore à mon papayou ce matin ... il faut faire les choses dans l'ordre !

😱

Non mais !!!

Papaye
 
Bonjour à tous,

Bon, moi j'ai copié ton code sur ma bécane, j'ai testé, et ça marche dans tous les cas de figure (que le fichier existe ou pas)
Donc je confirme : ça doit être un problème d'accès ?
 
Salut,
Je peux effectivement utiliser le système
ActiveWorkbook.SaveAs Filename:='Mon fichier.txt', FileFormat:=xlCSV, CreateBackup:=False

Mais il faudrait alors, pour enregistrer plusieurs fichiers txt au contenu différents, que je fasse les modifications sur la meme feuille, ce qui me semble bcp plus complexe que de traiter les informations et de les enregistrer une par une.
Car si j'arrive à écrire un fichier de cette manière, je pourrai aussi le lire et faire de nouvelles modifications avant de les enregistrer.

De plus, je pense que ces erreurs ne sont pas 'normal', et je préfèrerais donc les résoudre (je sais, je suis un idéaliste 🙂 )

Enfin, j'ai testé ça:
Papaye écrit:
Bonjour,

Pour créer un fichier et y enregistrer des données :

Sub toto()
Open 'C:\\temp\\tempo.txt' For Output As #1 ' Ouvre le fichier.
Print #1, 'bonjour'
Close #1
End Sub


Tout vient à point ...

Papaye



Mais j'ai toujours le meme type d'erreurs 🙁

Je ne sais plus quoi faire...

Ah, j'utilise Office Xp pro sur un portable, sous Windows Xp pro patché SP2.
 
Chez moi, tout plante!!!!

Que se soit ma macro, la tienne ou celle du voisin 🙂
Sérieusement, j'ai copié-collé des macro de création de fichier de ce type puisé sur d'autres sites web, aucune n'a fonctionnée.
Et ce sont toujours les meme erreurs (53, fichier inexistant ou 54, mode d'accès incorrect).

Message édité par: hoxus, à: 16/05/2006 14:54
 
- 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.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…