VBA - Ajouter des espace dans un fichier texte

Bonjour,

Vous trouverez en PJ un document Excel illustrant mon exemple.

Lorsque vous lancerez la macro, deux fichiers seront générés "1.txt" et "75.txt"

Je souhaite lorsque je lance la macro que les lignes "villes" soient décalées de 3 espaces, exemple :

Avant :

##################
### Departement 1
##################

Bourg-en-Bresse
Ambérieu-en-Bugey
Ambérieux-en-Dombes

Après :

##################
### Departement 1
##################

   Bourg-en-Bresse
   Ambérieu-en-Bugey
   Ambérieux-en-Dombes

Prérequis pour utiliser le Excel : Il faut que le répertoire "C:\Scripts" Existe ou alors changer ce chemin dans la macro.

N'hésitez pas a me dire si quelque chose n'est pas claire

D'avance, merci.

Bonjour,

Fais précéder tes noms de villes soit de trois espaces entre guillemets :

"   " & "nom de la ville"

Soit avec la fonction Space()

Space(3) & "nom de la ville"

Bonjour,

Comme ça (adapter le chemin) :

Option Explicit
Sub test()
Dim fs As Object, file_create As Object
Dim save_path$, villes$, dl&, dc&, cv&, i&
Dim departements ' As Variant ' ????
Const espaces$ = "   "

    Set fs = CreateObject("Scripting.FileSystemObject")
    save_path = "D:\Temp\"
    With Worksheets("feuil1")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        dc = .Cells(1, Columns.Count).End(xlToLeft).Column
        For cv = 2 To dc
            departements = .Cells(1, cv).Value
            Set file_create = fs.CreateTextFile(save_path & departements & ".txt", 8)
            file_create.Write "##################" & vbLf
            file_create.Write "### Departement " & departements & vbLf
            file_create.Write "##################" & vbLf
            file_create.Write "" & vbLf
            For i = 2 To dl
                villes = .Cells(i, cv).Text
                villes = espaces & Replace(villes, vbLf, vbLf & espaces)
                file_create.Write villes & vbLf
                file_create.Write "" & vbLf
            Next i
            file_create.Close
        Next cv
    End With

End Sub

Bonjour,

@Theze : J'avais déja essayer ta solution mais l'espace est uniquement sur la première ligne dans ce cas.

@Patrice33740 : Mille fois merci. C'est exactement ce que je voulais faire. Au final c'est tout con mais je n'aurai jamais eu l'idée.

Merci aussi Theze pour ta réponse, vous êtes des amours

Rechercher des sujets similaires à "vba ajouter espace fichier texte"