Selection d'un fichier txt
i
Bonjour,
Pourriez-vous m'aider à modifier mon code, afin que je puisse sélectionner un fichier dans l'arborescence de mon PC plutôt qu'avoir à le rentrer en dur.
Merci d'avance, les développeurs.
Ci-joint vous trouverez le fichier correspondant.
Sub Lire_Fichier_Texte_PRINT1a()
' Lecture de fichier texte écrit avec PRINT
' Utilisation de la commande LINE INPUT qui lit une ligne au complet
Dim i As Long, j As Long, ar
Dim sRepertoire As String, sNomFichier As String
Dim iFile As Integer
Dim data
Dim ws As Worksheet
sRepertoire = "T:\ISh\Prg\IS\L1\" '// doit terminer avec un "\"
'Sélection fichier
'Finfo = "fichiers texte (*.txt),*.txt,"
'FiltreDefaut = 1
'Titre = "selectionnez le fichier "
'sNomFichier = Application.GetOpenFilename(Finfo, FiltreDefaut, Titre)
sNomFichier = "835OF2.txt"
Set ws = Sheets("Écriture") '// feuille où écrire les résultats
ws.UsedRange.Clear '// vider le contenu de la feuille
'Ouvrir le 1er fichier
iFile = FreeFile
Open sRepertoire & sNomFichier For Input As #iFile
'Lecture du fichier et écriture dans Excel
i = 1
Do Until EOF(iFile)
Line Input #iFile, data
ws.Cells(i, 1) = data
i = i + 1
Loop
'Fermer le fichiers
Close #iFile
Call MiseEnPageAvantTraitement
Call macrotest
End Sub
Bonjour,
une proposition de modification de ton code
Sub Lire_Fichier_Texte_PRINT1a()
' Lecture de fichier texte écrit avec PRINT
' Utilisation de la commande LINE INPUT qui lit une ligne au complet
Dim i As Long, j As Long, ar
Dim sRepertoire As String, sNomFichier As String
Dim iFile As Integer
Dim data
Dim ws As Worksheet
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Title = "ouvrir fichier texte"
.Filters.Clear
.Filters.Add "text file", "*.txt"
.AllowMultiSelect = False
If .Show = -1 Then
sNomFichier = .SelectedItems(1)
End If
End With
Set ws = Sheets("Écriture") '// feuille où écrire les résultats
ws.UsedRange.Clear '// vider le contenu de la feuille
'Ouvrir le 1er fichier
iFile = FreeFile
Open sNomFichier For Input As #iFile
'Lecture du fichier et écriture dans Excel
i = 1
Do Until EOF(iFile)
Line Input #iFile, data
ws.Cells(i, 1) = data
i = i + 1
Loop
'Fermer le fichiers
Close #iFile
Call MiseEnPageAvantTraitement
Call macrotest
End Subi
Merci beaucoup, ça répond bien à ma question