écriture incrémentée (lignes) dans un fichier texte en VBA

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

D

dut-dut

Guest
Bonjour,
je me doute que ma question est toute simple mais j'apprend le VBA depuis hier grâce à www.excel-downloads.com

Je souhaite écrire plusieurs lignes dans un fichier texte de la manière suivante :


Sub Ecrire()
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("F:\Documents\Guillaume\temp\fichiertest.txt", True)

a.WriteLine ("Prénom : " & Range("A2").Value & " - Nom : " & Range("C2").Value & "')")
a.Close
End Sub


Comme celà ça fonctionne bien pour 1 ligne. Mon problème c'est que je voudrais incrémenter cette macro pour que mon fichier texte comporte plusieurs lignes (200 par exemple)

Merci d'avance à celui qui me retirera cette écharde du pied. Guillaume
 
bonjour Guillaume

tu peux tester


Sub EcrireTxt()
Dim Fs As Object, A As Object
Dim i As Byte

Set Fs = CreateObject("Scripting.FileSystemObject")
Set A = Fs.CreateTextFile("F:\Documents\Guillaume\temp\fichiertest.txt", True)

For i = 2 To 201
A.WriteLine ("Prénom : " & Range("A" & i) & " - Nom : " & Range("C" & i) & "')")
Next i
A.Close
End Sub


bon dimanche
MichelXld
 
Re : Re: écriture incrémentée (lignes) dans un fichier texte en VBA

Bonjour dut-dut, bonjour michel,

Après 6 ans j'ose répondre??? Quelle honte!! 😱 😱 😱

Voici d'autres façons de faire:

Code:
Sub Export()          
Range("A1:B100").Select
Set expRng = Application.Selection
numRows = expRng.Rows.Count
numCols = expRng.Columns.Count
fileName = ThisWorkbook.Path & "\Main.txt"
Open fileName For Output As #1
    
     For r = 1 To numRows
     For c = 1 To numCols
         data = expRng.Cells(r, c).Value
         If IsNumeric(data) Then data = Val(data)
         If IsEmpty(expRng.Cells(r, c)) Then data = Chr(32)
         If r <> numCols Then
            Write #1, data
        Else
            Write #1, data
             End If
    Next c
    Next r
Close #1
 End Sub

Code:
Sub Export()                        'On concatène d'abord les celulles
Dim fs As Object, file As Object
Dim i As Integer

Set fs = CreateObject("Scripting.FileSystemObject")
Set file = fs.CreateTextFile("C:\Main.txt", True)

For i = 1 To 100
file.WriteLine ("-install " & Chr(34) & Range("C" & i) & Chr(34) _
& Chr(32) & Chr(44) & Chr(32) & Chr(44)) & Chr(9)
Next i
A.Close

Code:
Sub Export()

With Worksheets("Data")
rg = .Range("A1:A100")
End With

nFile = ThisWorkbook.Path & "\Main.txt"

Open nFile For Output As #1

For a = 1 To UBound(rg, 1)
tmp = "-modify "
For b = 1 To UBound(rg, 2)
If tmp > "" Then
tmp = tmp & Chr(34) & rg(a, b) & Chr(34)
Else
tmp = rg(a, b)
End If
Next
Print #1, tmp
Next
Close #1
End Sub

Ca peut toujours servir. 😉


A+ 😎
 
Dernière édition:
- 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.

Discussions similaires

Retour