1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| Option Explicit
Dim fso, folder, files, file
Dim folderPath, latestFile, latestDate
Dim inputFile, line, fields, output
Dim colOrder, i
' --- Personnalise ce chemin ---
folderPath = "C:\TEMP\FILES\IMPORT\PROFIL" ' <-- Met le bon chemin ici
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(folderPath)
Set files = folder.Files
Set latestFile = Nothing
latestDate = #1/1/1900#
' Trouver le fichier le plus récent contenant "_Profile_Users_Global_Active"
For Each file In files
If InStr(file.Name, "_Profile_Users_Global_Active") > 0 Then
If file.DateLastModified > latestDate Then
Set latestFile = file
latestDate = file.DateLastModified
End If
End If
Next
If latestFile Is Nothing Then
MsgBox "Aucun fichier contenant '_Profile_Users_Global_Active' trouvé.", vbExclamation
WScript.Quit
End If
' Colonnes à extraire (base 1)
colOrder = Array(4, 1, 2, 3, 15, 9, 8, 10, 11,7)
' Lire le fichier et extraire les colonnes
Set inputFile = fso.OpenTextFile(latestFile.Path, 1, False)
output = "Fichier : " & "LAST_ACTIVE_PROFILE.csv" & vbCrLf & vbCrLf
Do Until inputFile.AtEndOfStream
line = inputFile.ReadLine
fields = Split(line, ";") ' change ";" en "," si ton fichier utilise des virgules
If UBound(fields) >= 14 Then ' Vérifie qu'il y a au moins 15 colonnes (base 0)
For i = 0 To UBound(colOrder)
If colOrder(i) - 1 <= UBound(fields) Then
output = output & fields(colOrder(i) - 1) & vbTab
Else
output = output & "?" & vbTab
End If
Next
output = output & vbCrLf
End If
Loop
inputFile.Close
' Affiche les résultats
MsgBox output |
Partager