Importation d'un fichier texte avec un séparateur dans excel.

Killteck Messages postés 8 Date d'inscription mercredi 27 décembre 2000 Statut Membre Dernière intervention 21 juillet 2011 - 21 juil. 2011 à 16:42
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 21 juil. 2011 à 19:02
Bien le bonjour,

Je suis actuellement très embêter et j'ai besoin de votre aide.

J'ai une macro sous excel qui me lit un fichier texte et qui toute les 31999 lignes me crée une nouvelle feuilles dans mon classeur.

Mes problèmes:

[*] J'aimerai qu'à chaque nouvelle feuilles il me mette l’entête suivante En A1 = Heure et en B1 = Position
[*] Ensuite je n'arrive pas a le faire séparé mes colonne, c'est à dire qu'il me place tout dans la colonne A1 et qu'il n’interprète pas mon caractères de séparation qui est ";".

Ci-joint mon code:

Sub Traitement_donnees()

      'Dimension Variables
      Dim ResultStr As String
      Dim FileName As String
      Dim FileNum As Integer
      Dim Counter As Double
      
      'Ask User for File's Name
      FileName   = InputBox("Please enter the Text File's name, e.g. test.txt")
      
      'Check for no entry
      If FileName = "" Then End
      
      'Get Next Available File Handle Number
      FileNum = FreeFile()
      
      'Open Text File For Input
      Open FileName For Input As #FileNum
      
      'Turn Screen Updating Off
      Application.ScreenUpdating = False
      
      'Create A New WorkBook With One Worksheet In It
      Workbooks.Add template:=xlWorksheet
      
      'Set The Counter to 1
      Counter = 1
      
      'Loop Until the End Of File Is Reached
      Do While Seek(FileNum) <= LOF(FileNum)
      
         'Display Importing Row Number On Status Bar
          Application.StatusBar = "Importing Row " & _
             Counter & " of text file " & FileName
             
          'Store One Line Of Text From File To Variable
          Line Input #FileNum, ResultStr
          
          'Store Variable Data Into Active Cell
          If Left(ResultStr, 1) = ";" Then
             ActiveCell.Value = "'" & ResultStr
          Else
             ActiveCell.Value = ResultStr
          End If
          
          If ActiveCell.Row = 31999 Then
          
             'If On The Last Row Then Add A New Sheet
             ActiveWorkbook.Sheets.Add
             
          Else
          
             'If Not The Last Row Then Go One Cell Down
             ActiveCell.Offset(1, 0).Select
          End If
          
          'Increment the Counter By 1
          Counter = Counter + 1
          
      'Start Again At Top Of 'Do While' Statement
      Loop
      
      'Close The Open Text File
      Close
      
      'Remove Message From Status Bar
      Application.StatusBar = False

End Sub



Et une partie de mon fichier texte:

09:58:31;81223
09:58:31;81219
09:58:32;81213
09:58:33;81206
09:58:34;81199
09:58:35;81192
09:58:36;81186
09:58:37;81178
09:58:38;81171
09:58:39;81165
09:58:40;81158
09:58:41;81151
09:58:42;81144
09:58:43;81137
09:58:44;81130
09:58:45;81123
09:58:46;81116
09:58:47;81108
09:58:48;81101
09:58:49;81095
09:58:50;81088
09:58:51;81081
09:58:52;81074
09:58:53;81067
09:58:54;81060
09:58:55;81053
09:58:56;81046
09:58:57;81039
09:58:58;81032
09:58:59;81026
09:59:00;81019
09:59:01;81013
09:59:02;81006
09:59:03;80999
09:59:04;80992
09:59:05;80985
09:59:06;80978


Merci d'avance

1 réponse

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
21 juil. 2011 à 19:02
Bonjour,

Renseignes-toi sur la fonction Split :
MesDonnées=Split(MaChaine,";") 'A vérifier l'ordre des paramètres

Mon site
0
Rejoignez-nous