Copier une seule ligne d'un fichier .txt [VBA]

Lailaine

XLDnaute Nouveau
Bonjour,
Je sollicite ENCORE votre aide !!! En fait j’aimerai copier une partie d’un fichier texte (la quatrième ligne en fait !)
Le programme ci-dessous parcours tous les fichier .txt du dossier et en copie chaque ligne commencant par # dans un autre… Au lieu d’avoir cette condition là, j’aimerai qu’il ne prenne qu’une ligne bien déterminée… Si quelqu’un a une idée, elle est bienvenue !!!
Merci à tous et bonne journée !

Dim Doss As String
Dim fs As FileSearch
Dim i As Long
Dim fso
Dim fic
Dim ficLire
Dim Lignes() As String
Dim LigneAEcrire As String
Dim Lireligne As String

Doss = "Chemin du dossier"

Set fs = Application.FileSearch
Set fso = CreateObject("Scripting.FileSystemObject")
Set fic = fso.CreateTextFile("chemin du fichier.txt créé ", True)

‘Création d’un tableau dynamique rempli avec les lignes souhaitées
ReDim Lignes(1 To 1)
With fs
.NewSearch
.LookIn = Doss
.Filename = "*.txt"
.SearchSubFolders = True
.Execute
For i = 1 To .FoundFiles.Count ' Parcours de tous les dossiers
LigneaEcrire = ""
Do Until ficLire.atendofstream
Lireligne = ficLire.readline
If Left(Lireligne, 1) = "#" Then
LigneaEcrire = LigneaEcrire & Lireligne & ";"
End If
Loop
Lignes(UBound(Lignes)) = LigneaEcrire
ReDim Preserve Lignes(1 To UBound(Lignes) + 1)
ficLire.Close
Next i
End With

For i = 1 To UBound(Lignes) - 1
fic.writeline Lignes(i)
Next i
fic.Close
 

tototiti2008

XLDnaute Barbatruc
Re : Copier une seule ligne d'un fichier .txt [VBA]

Bonjour Lailaine,

Je pense que c'est cette partie qu'il faudra changer :

Code:
For i = 1 To .FoundFiles.Count ' Parcours de tous les dossiers
[COLOR=red]Set ficLire = fso.OpenTextFile(.foundfiles(i), 8,True) 'Il me semble que cette ligne manque ?[/COLOR]
LigneaEcrire = ""
[COLOR=red]NumLigne = 1[/COLOR]
Do Until ficLire.atendofstream
Lireligne = ficLire.readline
If [COLOR=red]NumLigne = 4[/COLOR] Then
LigneaEcrire = LigneaEcrire & Lireligne & ";"
End If
[COLOR=red]NumLigne = NumLigne +1[/COLOR]
Loop
Lignes(UBound(Lignes)) = LigneaEcrire
ReDim Preserve Lignes(1 To UBound(Lignes) + 1)
ficLire.Close
Next i
 
Dernière édition:

Lailaine

XLDnaute Nouveau
Re : Copier une seule ligne d'un fichier .txt [VBA]

Bonjour tototiti!

Possible qu'il manque des morceaux!!! Une fois de plus c'est toi qui m'aide et je t'en remercie mais depusi que tu m'avais donné le code la fois dernière , il a fait un bon petit bout de chemin et là j'ai enlevé pas mal de superflus pour poster le message... donc forcément.. j'en ai peut être un peu trop enlevé!!

Je te remercie encore pour ton aide !!! Et je vais voir si cela fonctionne!! En tout cas ca a l'air bien plus rapide que ce que j'étais en train de faire, j'étais en train de m'inspirer de ce code là (je te le donne car je sais que tout t'interesse dans ce vaste monde VBA ^^) : TUTO VB.NET : SUPPRIMER UNE LIGNE DANS UN FICHIER supprimer, ligne, fichier, delete, line, Source N°22827


Sur ce je vais étudier tes modifs!!! Je reviens si j'ai une question, comme d'habitude !!
Merci encore!
 

Discussions similaires

Statistiques des forums

Discussions
299 793
Messages
1 979 148
Membres
206 590
dernier inscrit
tobbich