Re,
J'ai toujours le même problème, la mise en colonne ne se fait pas. Je la fait manuellement avec l'onglet Données / Convertir... Mais si on considère que chez toi ça marche le code ci-dessous devrait fonctionner. Toutefois, tu dis :
juste une dernière petite request: saurais-tu comment ne seulement copier les lignes qui comporte un "mot" spécifique dans la colonne L ?
C'est tellement vague que je me suis cru sur la plage de Sète... Dans le code j'ai pris au hasard la valeur de la ligne 4 : CACEIS Bank et utilisé Trim pour supprimer tous les espaces à la c**. Si le mot spécifique est fixe tu n'auras plus qu'à le remplacer, sinon il faudra passer par une InputBox qui demandera à l'utilisateur de taper le mot critère du filtre :
Le code :
Sub OpenImportFile()
Dim sFileName As String
Dim sBase As String, test As String
Dim sSuffix As String
Dim sExt As String
Dim shA As Worksheet
Dim I As Integer
Dim DEST As Range
Dim dtDébut As Double, dtFin As Double, n As Integer
Dim dt As Double
Dim CS As Workbook
Dim OS As Worksheet
Dim PL As Range
Set shA = ThisWorkbook.Worksheets("Data")
shA.Cells.ClearContents
dtDébut = Worksheets("Paramètres").Range("B9").Value
dtFin = Worksheets("Paramètres").Range("B10").Value
n = dtFin - dtDébut
For I = 0 To n - 1
dt = Format(dtDébut + I, "yyyymmdd")
sBase = "F:\Fastnet\Fastnet2020\"
sExt = "FastnetI.fic"
sFileName = sBase & dt & sExt
'sFileName = "Z:\poubelle\20200222FastnetI.txt" 'pour les tests
test = Dir(sFileName)
If test <> "" Then
Workbooks.OpenText sFileName, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, Local:=True, DecimalSeparator:="."
Set CS = ActiveWorkbook
Set OS = CS.Worksheets(1)
Set PL = OS.Range("A1").CurrentRegion
PL.AutoFilter Field:=12, Criteria1:=Trim(OS.Range("L4").Value)
Set DEST = IIf(shA.Range("A1").Value = "", shA.Range("A1"), shA.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0))
PL.SpecialCells(xlCellTypeVisible).Copy DEST
PL.AutoFilter
CS.Close False
End If
Next I
End Sub