Sub Fichier_TXT()
Dim chemin$, fichier$, feuil$, x%, form$, h As Variant, tablo, nom$, n&, i&
chemin = ThisWorkbook.Path & "\" 'dossier à adapter
fichier = Dir(chemin) '1er fichier du dossier
feuil = "FEUILLE_1" 'nom des feuilles à traiter
x = FreeFile
Open chemin & "Calage_pression.txt" For Output As #x 'création du fichier TXT
Print #x, ";Calage en Pression"
Print #x, ";Localisation Date Valeur"
Print #x, ";--------------------------"
Application.ScreenUpdating = False
Columns(3).Resize(, 2).Insert 'insère 2 colonnes auxiliaires
While fichier <> ""
If Right(fichier, 4) = ".xls" Or Right(fichier, 5) Like ".xls?" Then
form = "'" & chemin & "[" & fichier & "]" & feuil & "'!"
h = ExecuteExcel4Macro("MATCH(9^9," & form & "C1)") 'évalue la formule de liaison, C1 => colonne 1
If IsNumeric(h) Then
Range("C1").Resize(h).FormulaArray = "=MOD(" & form & "A1:A" & h & ",1)" 'formule de liaison matricielle, plus rapide
Range("D1").Resize(h).FormulaArray = "=" & form & "B1:B" & h 'formule de liaison matricielle
tablo = Range("C1").Resize(h, 2) 'matrice, plus rapide
Range("C1").Resize(h, 2) = tablo 'supprime les formules
nom = Left(fichier, InStrRev(fichier, ".") - 1) 'nom du fichier sans extension
n = 0
For i = 2 To h
If tablo(i, 1) <> 0 Or tablo(i, 2) <> 0 Then
n = n + 1
Print #x, IIf(n = 1, nom, "") & vbTab & Format(tablo(i, 1), "hh:mm") & vbTab & tablo(i, 2)
End If
Next
End If
End If
fichier = Dir 'fichier suivant
Wend
Close #x 'fermeture du fichier TXT
Columns(3).Resize(, 2).Delete 'supprime les 2 colonnes auxiliaires
End Sub