Cela devrait le faire. En fonction de ce que vous faites, vous voudrez peut-être le modifier, donc il ne sera pas ajouter le champ de nom de fichier s'il existe déjà. etc.
Public Sub UpdateFiles()
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim xl As New Excel.Application
Dim wb As New Excel.Workbook
Dim lastRow
Dim lastColumn
Dim folder
'Change this folder to the one you want.
Set folder = fso.getFolder("c:\notbackedup\")
'Uncomment to watch/debug code
'xl.Visible = True
For Each f In folder.Files
Debug.Print f.Name
If (f.Name Like "*.csv") Then
Set wb = xl.Workbooks.Open(f.Path)
lastRow = wb.Sheets(1).UsedRange.Rows.Count
lastColumn = wb.Sheets(1).UsedRange.Columns.Count
wb.Sheets(1).Range(ColumnLetter(lastColumn + 1) & "1").Value = "FileName"
wb.Sheets(1).Range(ColumnLetter(lastColumn + 1) & "2:" & ColumnLetter(lastColumn+1) & lastRow).Value = f.Name
wb.Save
wb.Close True
End If
Next
xl.Quit
End Sub
Function ColumnLetter(ByVal ColumnNumber As Long) As String
Dim n As Long
Dim c As Byte
Dim s As String
n = ColumnNumber
Do
c = ((n - 1) Mod 26)
s = Chr(c + 65) & s
n = (n - c) \ 26
Loop While n > 0
ColumnLetter = s
End Function
Commencez ici: https://stackoverflow.com/questions/10380312/loop-through-files-in-a-folder-using-vba?rq=1 –
Salut, j'ai vu le code boucle. http://stackoverflow.com/a/10380381/5750419 mais vous ne savez pas comment et où saisir les codes pour effectuer la copie du nom de fichier. – WindWaterWinter