Voici le code VBA que j'ai mis en place pour cela
Sub FichierTxtCopieSurFeuilleDeCalculs() Dim Ligne As String, NoLigne As Long, NoCol As Integer, Indice As Integer Dim Tableau, Chemin$, nomFich$, separateur Application.Volatile '*** ouverture "d"une" boite de dialogue *** 'de laquelle on extrait : Chemin = "C:\chemin\sur\le\disque\" nomFich = "FICHIER.TXT" 'ou .csv '******************************** 'Ouverture du fichier Open Chemin & nomFich For Input As #1 'Lecture While Not EOF(1) Input #1, Ligne 'recherche du séparateur If InStr(Ligne, ";") <> 0 Then ' ";" separateur = ";" ElseIf InStr(Ligne, vbTab) <> 0 Then 'Tab separateur = vbTab ElseIf InStr(Ligne, ",") <> 0 Then ' "," separateur = "," ElseIf InStr(Ligne, " ") <> 0 Then ' espace separateur = " " End If 'création d'un tableau des données de la ligne Tableau = Split(Ligne, separateur) NoLigne = 5 Cells(NoLigne, 1).EntireRow.Insert 'transfert des données dans une feuille Excel vierge For Indice = 0 To UBound(Tableau) If (NoCol = 12) Then NoCol = 1 NoLigne = NoLigne + 1 Cells(NoLigne + 1, 1).EntireRow.Insert Else NoCol = NoCol + 1 End If If ((NoCol = 8) Or (NoCol = 12)) Then 'Dans le 8éme et la 12éme colonne j'insere des nombres Cells(NoLigne, NoCol).Value = Val(RTrim(Tableau(Indice))) ElseIf (NoCol = 5) Then 'Dans la 5éme colonne j'insere une date formaté Cells(NoLigne, NoCol).Value = Format(Tableau(Indice), "dd-mmm") ElseIf (NoCol = 6) Then 'Dans la 6éme colonne j'insere une formule Cells(NoLigne, NoCol).NumberFormat = "General" Cells(NoLigne, NoCol).Formula = "=IF(B84=""PLEBIC"",""Boostées"",IF(B84=""FNAC "",""Offres FNAC"",""Normales""))" Cells(NoLigne, NoCol).Calculate 'Cells(NoLigne, NoCol).Value = Cells(NoLigne, NoCol).Value Else 'Dans les autres colonnes j'insére du texte Cells(NoLigne, NoCol).Value = RTrim(Tableau(Indice)) End If Next Wend Close #1 End Sub