Bonjour Bonne année 2014,
Avant de vous exposer mon probleme , je tenais a vous remercier d'avance pour votre participation.
Pour extraire des données à partir des fichiers texts et de les afficher sous excel( concaténation de donnés). j'ai crée une fonction qui me permettrais d'accéder au fichiers textes, de les selectionner, traiter et d'afficher leur données une apres l'autre sur une feuille excel.
La fonction marche partiellement, elle me permet de verifier le format des fichiers sélectionnés mais j'arrive pas a afficher les données de tous les fichiers sélectionnés.
Ci joint mon code , fichiers textes contenants les données a extraire , exemple d'affichage attendue (faite manuellement
	
	
	
	
	
		
	
		
			
		
		
	
				
			Avant de vous exposer mon probleme , je tenais a vous remercier d'avance pour votre participation.
Pour extraire des données à partir des fichiers texts et de les afficher sous excel( concaténation de donnés). j'ai crée une fonction qui me permettrais d'accéder au fichiers textes, de les selectionner, traiter et d'afficher leur données une apres l'autre sur une feuille excel.
La fonction marche partiellement, elle me permet de verifier le format des fichiers sélectionnés mais j'arrive pas a afficher les données de tous les fichiers sélectionnés.
Ci joint mon code , fichiers textes contenants les données a extraire , exemple d'affichage attendue (faite manuellement
		Code:
	
	
	Sub Select_fichier_QStat()
    Dim fn As Variant
    Dim i&
    Dim TbFn$(), ff%, s$
    Dim num1 As Integer
    Dim nim2 As Integer
    Dim diff As Integer
    Dim detect As Boolean
    Dim strCount As String
    '-----------------------------------
    
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    'sélection des fichiers txt à traiter
    fn = Application.GetOpenFilename("Fichiers textes (*.txt), *.txt", , , , True)
    If TypeName(fn) = "Boolean" Then Exit Sub 'quitter si annuler
    'nouvelle feuille
    'Sheets.Add
    detect = True
    'fichiers à ouvrirs
    ReDim TbFn(1 To UBound(fn))
    'Traitement des fichiers
    For i = 1 To UBound(fn)
        TbFn(i) = fn(i) 'fichier en cours
        ff = FreeFile
        Open TbFn(i) For Input As #ff 'ouverture
            Do Until EOF(ff) 'tant que fin du fichier non atteinte
                Line Input #ff, s 'lire une ligne
                If Left(s, 3) = "EV|" Then
                    'Controle sur le Event
                    'Nbre |
                    num1 = Len(s)
                    strCount = Replace(s, "|", "")
                    num2 = Len(strCount)
                    diff = num1 - num2
                    If diff = 35 Then
                        detect = True
                    Else
                        MsgBox "Erreur - Le champ EV contient " & diff & " | au lieu de 35"
                        detect = False
                    End If
                End If
                If Left(s, 3) = "ME|" Then
                    'Controle sur la mesure
                    'Nbre |
                     num1 = Len(s)
                     strCount = Replace(s, "|", "")
                     num2 = Len(strCount)
                     diff = num1 - num2
                     If diff = 19 Then
                        detect = True
                     Else
                        MsgBox "Erreur - Le champ ME contient " & diff & " | au lieu de 19"
                        detect = False
                     End If
                End If
                If Left(s, 3) = "TD|" Then
                    'Controle sur les limites
                    'Nbre |
                     num1 = Len(s)
                     strCount = Replace(s, "|", "")
                     num2 = Len(strCount)
                     diff = num1 - num2
                     If diff = 18 Then
                        detect = True
                     Else
                        MsgBox "Erreur - Le champ EV contient " & diff & " | au lieu de 18"
                        detect = False
                     End If
                End If
            Loop
        Close #ff 'fermeture
    Next i
    If detect = False Then
        MsgBox "Erreur - Une ou plusieurs lignes sont erronnées"
    Else
        MsgBox "Les Fichiers Qstat sont corrects !!"
    End If
    
    ' Affichage
    Dim cpt As Integer
    Dim Tableau() As String
    cpt = 1
    For cpt = 1 To UBound(fn)
        TbFn(cpt) = fn(cpt) 'fichier en cours
        If detect = True Then
            ff = FreeFile
            Worksheets("Feuil1").Select
            'Entete
            Cells(5, 1) = "Pas de Test"
            Cells(6, 1) = "Données Numérique"
            '---------------------
            
            'ouverture du fichier
            Open TbFn(cpt) For Input As ff
                While Not EOF(ff)
                    Line Input #ff, s
                    If Left(s, 3) = "ME|" Then
                        'on incrémente la ligne d'ecriture
                        cpt = cpt + 1
                        'on decompose
                        Tableau = Split(s, "|")
                        'on ecrit
                        Cells(5, cpt) = Tableau(4)
                        Cells(6, cpt) = Tableau(6)
                    End If
                Wend
            Close #ff
        End If
    Next cpt
End Sub