VBA, creer et ecrire un fichier text (.txt) depuis un macro

VBA, creer et ecrire un fichier text (.txt) depuis un macro - VB/VBA/VBS - Programmation

Marsh Posté le 18-06-2011 à 15:49:08    

Bonjour a tous,
 
 
cela fait plusieurs jours que je creuse sur internet, et que je trouve plein de reponses qui ne marchent pas, aucun fichier texte n'est cree. Je ne comprends pas pourquoi les solutions que j'ai trouvees ne marchent pas, est-ce un probleme d'acces, de securite, qui empecherait le fichier texte de se creer ? Mon antivirus est AVG dree antivirus edition 2011.
 
Ci-dessous une liste des choses que j'ai tentees sans succes :
 
 
'#################### first try ############################3
    'first set a string which contains the path to the file you want to create.
    'this example creates one and stores it in the root directory
    MyFile = "c:\" & "whateveryouwant.txt"
    'set and open file for output
    fnum = FreeFile()
    'Open MyFile For Output As fnum
    write project info and then a blank line. Note the comma is required
    Write #fnum, "I wrote this"
    Write #fnum,
    'use Print when you want the string without quotation marks
    Print #fnum, "I printed this"
    Close #fnum
     
   
    '#################### second try ############################
    Const LogFileName As String = "C:TEXTFILE.LOG"
    Dim FileNum As Integer
    FileNum = FreeFile ' next file number
    LogMessage = "hello world"
    'Open LogFileName For Append As #FileNum ' creates the file if it doesn't exist
    Print #FileNum, LogMessage ' write information at the end of the text file
    Close #FileNum ' close the file
     
     
    '#################### third try ############################
    Open "C:\c1c2.txt" For Append As #1
    Print #1, ActiveSheet("A1" ).Value ' Référence de la cellule à copier dans le fichier
    Close #1
 
     
    '#################### fourth try ############################
    'Pour creer le fichier texte
    Set FSys = CreateObject("Scripting.FileSystemObject" )
    Set MonFic = FSys.CreateTextFile("c:\windows\bureau\fichier.txt" )
    With MonFic 'Pour écrire dans le fichier texte
        .writeLine "Ecrivez la première ligne" 'Mettre write pour ne pas sauter à la ligne
        .writeLine "Ecrivez la deuxième ligne"
        .writeLine "Ecrivez la troisième ligne, etc..."
    End With
    Msg = "Écriture réussie dans fichier.txt"
    MsgBox (Msg)
 
 
    '#################### fifth try ############################
    Open "x.txt" For Append As #1
    Print #1, "xxxxxx"
    Print #1, "yyyyy"
    Close #1
     
 
    '#################### sixth try ############################
    FileNumber = FreeFile    ' Lit le numéro de fichier inutilisé
    LogFile = "Report.log"
    Open "C:\Excel\Report.log " For Append As #FileNumber
    Print #FileNumber, "Fin du traitement à : " & Now()
    Print #FileNumber, vbLf
    Print #FileNumber, "-----------------------------"
    Close #FileNumber

Reply

Marsh Posté le 18-06-2011 à 15:49:08   

Reply

Marsh Posté le 18-06-2011 à 21:53:50    

salut,
 
exemple pour crée un dossier Mois sous un dossier Année  , l 'emplacement où tu va crée ce dossier et sous dossier est à toi de le mettre dans un textbox

Code :
  1. Dim chemin$, anne$
  2. Dim chemin2$, mois$
  3. chemin = TextBox1.Text + "\"
  4. anne = txtannee.Text
  5. 'crée le dossier de l'année
  6. If Dir(chemin & anne, 16) = "" Then MkDir chemin & anne
  7. chemin2 = TextBox1.Text + "\" + anne + "\"
  8. mois = txtmois.Text
  9. 'crée le dossier de le mois
  10. If Dir(chemin2 & mois, 16) = "" Then MkDir chemin2 & mois

Reply

Marsh Posté le 19-06-2011 à 06:39:38    

Salut Pikamo,
 
le code break a :
 
chemin = TextBox1.Text + "\"
 
avant tout je cherche a creer un fichier texte, meme si je suis aussi super interesse par creer des dossiers.

Reply

Marsh Posté le 19-06-2011 à 06:50:56    

je suis persuade que c'est un probleme d'administration, meme quand je veux simplement copier un fichier texte et le coller autre part j'ai besoin de l'autorisation administrateur grrrrrrr

Reply

Marsh Posté le 19-06-2011 à 09:34:29    

dans le  TextBox1.Text  tu met le chemein où tu veux travaille  
par exemple " C:\Documents and Settings\Mes documents " sans le "\"à la fin , déjà d’après  le code , il va l'ajouter automatique

Reply

Marsh Posté le 19-06-2011 à 13:25:24    

sauf qu'il n'y a pas de textbox

Reply

Marsh Posté le 20-06-2011 à 16:20:31    

Un code tout con comme ca, ca ne marche pas non plus ?
 

Code :
  1. Const ForReading = 1, ForWriting = 2
  2.    Dim fso, f
  3.    Set fso = CreateObject("Scripting.FileSystemObject" )
  4.    Set f = fso.OpenTextFile("c:\test.txt", ForWriting, True)
  5.    f.write ("Salut" )


 
Edit :
D'un autre coté, ca va etre dur de trouver ce chemin là : ("c:\windows\bureau\fichier.txt" )


Message édité par SuppotDeSaTante le 20-06-2011 à 16:21:46

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 20-06-2011 à 19:04:17    

c'est vrai que ca va etre dur de trouver ce chemin : ("c:\windows\bureau\fichier.txt" ) surtout lorsque le systeme est en anglais.
 
Neanmoins rien ne s'est cree sur c: avec ton code, ca break a cette ligne de commande :
Set f = fso.OpenTextFile("c:\test.txt", ForWriting, True)
 
et j'ai tendance a croire que ce pourrait etre un probleme d'administration.

Reply

Marsh Posté le 20-06-2011 à 20:50:15    

Tu es sur quel OS ?
Si ce bete code ne marche pas, il y a un souci...


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 20-06-2011 à 21:02:58    

Je crois aussi que c'est peut-être un problème d'administration, ou plus précisément un problème de droit en écriture sur le répertoire (dossier) racine c:\.
En règle générale, on n'écrit jamais sur c:\. On écrit plutôt dans un sous-répertoire (sous-dossier).
Il faudrait essayer, par exemple, tout simplement avec :

Set f = fso.OpenTextFile("test.txt", ForWriting, True)


Message édité par billgatesanonym le 21-06-2011 à 12:35:12
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed