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

é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
 
Merci Michel, c'était juste ça qui me manquait !
(la syntaxe de la boucle For et la déclaration des variables)

Merci encore à toi, et bonne journée à tout le monde ! (c'est mon patron qui va être content !)
 
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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…