Erreurs pour écrire un fichier .txt avec VB

  • Initiateur de la discussion Hoxus
  • Date de début
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.
 
M

Matthieu

Guest
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 :)
 

Hoxus

XLDnaute Nouveau
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:
 

mutzik

XLDnaute Barbatruc
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...
 
P

Papaye

Guest
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
 
P

Papaye

Guest
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 !

:eek:

Non mais !!!

Papaye
 

Hoxus

XLDnaute Nouveau
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.
 

Hoxus

XLDnaute Nouveau
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
 

Discussions similaires

Réponses
27
Affichages
1 K

Statistiques des forums

Discussions
312 497
Messages
2 088 994
Membres
104 000
dernier inscrit
dinelcia