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
| Sub ImportTxtNew()
Dim ligne As String, strFullName, i As Long, NbWs As Long
Worksheets.Add 'Ajoute une feuille
strFullName = Application.GetOpenFilename("Fichiers textes (*.txt),*.txt", , _
"Sélectionnez un fichier :") 'Boite de dialogue qui permet de sélectionner le fichier Text à importer
Open strFullName For Input As #1 'L'ouvre en tant que 'source' pour le traitement
Do While Not EOF(1) 'Tant que non vide
Do While (Not EOF(1)) And (i < 65500) 'A faire jusqu'à la ligne 65500
i = i + 1 'Incrémentation du compteur
Input #1, ligne 'Récupère la ligne du fichier Text
Cells(i, 1).Value = ligne 'Place la ligne du fichier text dans la 1ère colonne
Loop
If i < 65500 Or EOF(1) Then Exit Do 'Après le traintement des 65500 ligne ajout d'une autre feuille pour la suite
i = 0 'Remet le compteur à zéro
Worksheets.Add 'ajoute une feuille, qui devient la feuille "active"
Loop
Close #1 'Ferme l'instance Text
'Renomme les feuilles avec les données
NbWs = Worksheets.Count
For i = 1 To NbWs - 1
If Sheets(i).Name = "Parametres" Then Resume Next 'J'ai une feuille nommé Parametres, la seule feuille existante à l'ouverture, evite donc le text to column sur cette feuille
Sheets(i).Columns("A").TextToColumns DataType:=xlDelimited, _
Tab:=True 'Transfert Text to column avec Tab comme délimiteur
Sheets(i).Name = "Data " & i 'Renomme la feuille Data 1; Data 2;...
Next i
Sheets("Parametres").Select
MsgBox "Import terminé en " & Diff & ", procédez à la Mise en forme"
End Sub |
Partager