Importer des données d'un fichier .txt

  • Initiateur de la discussion Initiateur de la discussion helene51
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

helene51

XLDnaute Junior
Bonjour le forum et bonne année 2009 !

Après des heures de recherches je me décide à vous solliciter car je n'avance pas.

J'ai un fichier texte dont chaque ligne est de la forme suivante :
"02/01/2009 14:44:59",#1899-12-30 03:30:00#,"16970","3",#1899-12-30#,#1899-12-30#,#1899-12-30#,"84,17%","00:00","","00:00",""

Je souhaite récupérer dans excel la valeur de pourcentage enregistrée dans ce fichier texte. (ici 84,17%)

J'ai écrit quelquechose mais ça ne fonctionne pas et je ne trouve pas le problème.

Code:
NomFiche = "C:\Dossiers\9\21.txt"
   Open (NomFiche) For Input As #1
      Do
         Input #1, LDate
         Input #1, Temps1
         Input #1, nb1
         Input #1, nb2
         Input #1, tps1
         Input #1, tps2
         Input #1, tps3
         Input #1, taux
             For i = 2 To 5 ' le fichier texte a 5 lignes
                If .Cells(i, 1).Value = LDate Then 'en colonne 1 j'ai des dates qui correspondent aux dates du fichier texte
                        .Cells(i, 2).Value = taux
                End If
             Next i
         .Columns("B:B").Select
         Selection.NumberFormat = "0.00%"
      Loop While Not EOF(1)
Close #1

Le problème est que je ne récupère aucune donnée.
Je bloque vraiment, si quelqu'un a une idée je l'en remercie d'avance !
 
Re : Importer des données d'un fichier .txt

bonjour,

le format de Ldate provenant du fichier texte est en .... texte 🙂
je suppose que les dates du classeur sont en format date.

il faut un exemple des ton classeur en PJ pour voir exactement le soucis
 
Dernière édition:
Re : Importer des données d'un fichier .txt

Bonjour Larson,

Merci de te pencher sur mon problème.

J'ai mis en pièce jointe un exemple de mes écritures en vb et ci dessous un exemple du fichier text à traiter avec la macro.

"02/01/2009 15:50:46",#1899-12-30 07:25:00#,"13172","8",#1899-12-30 00:30:00#,#1899-12-30 00:20:00#,#1899-12-30 01:10:00#,"74%","00:00","","00:05","com1","00:00","","00:10","com2","00:00","","00:05","com3","00:10","com4","00:00","","00:15","com5","00:05","com6","00:00","","00:10","com7","com8","00:00","com9","com10","00:10",""
"30/12/2008",#1899-12-30 07:25:00#,"12629","10",#1899-12-30 00:30:00#,#1899-12-30 00:20:00#,#1899-12-30 01:25:00#,"70,94%","00:10","com1","00:00","","00:05","com2","00:00","","00:05","com3","00:20","com4","00:05","com5","00:05","com6","00:10","com7","00:00","","00:00","","00:20","com8","com9","00:05","com10","","00:00",""
"05/01/2009 08:51:17",#1899-12-30 04:00:00#,"5460","6",#1899-12-30#,#1899-12-30 00:15:00#,#1899-12-30 00:30:00#,"56,87%","00:00","","00:00","","00:00","","00:00","","00:00","","00:00","com1","00:05","com2","00:00","","00:15","com3","00:00","","00:00","","00:00","","com4","00:10","com5","","00:00",""
"03/01/2009 08:55:20",#1899-12-30 06:50:00#,"12854","9",#1899-12-30 00:30:00#,#1899-12-30 00:20:00#,#1899-12-30 00:40:00#,"78,37%","00:00","","00:00","","00:00","","00:00","com1","00:00","","00:25","com2","00:05","com3","00:00","","00:00","","00:00","","00:00","","00:00","","com4","00:10","com5","","00:00",""
"02/01/2009 14:44:59",#1899-12-30 03:30:00#,"16970","3",#1899-12-30#,#1899-12-30#,#1899-12-30#,"84,17%","00:00","","00:00","","00:00","","00:00","","00:00","","00:00","","00:00","","00:00","","00:00","","00:00","","00:00","","00:00","","","00:00","","","00:00",""

Je n'arrive pas à ajouter le taux dans la colonne 2.

Merci pour ton aide.
 

Pièces jointes

Re : Importer des données d'un fichier .txt

Bonjour Hasco,

J'ai essayé ce que tu as marqué mais ça ne change rien.
Il n'y a toujours rien d'affiché dans mes cellules de la colonne B.

Cependant, est-ce que je peux toujours écrire les input comme tu l'as marqué et non par succession ? Dans mon code ces lignes reviennent souvent et ça éclaircirait beaucoup les choses.

Est-ce valable aussi pour les Append ou les output ?

Merci.
 
Re : Importer des données d'un fichier .txt

il y a beaucoup de champs derriere le % que tu souhaite recuperer.
30 si j'ai bien compté.
Ton input doit comporter autant de variable qu'il y a de champs par ligne il me semble.

Note : je ne suis pas un specialiste, je connais le 'input' sans jamais l'avoir utilisé en fait 🙂
 
Re : Importer des données d'un fichier .txt

J'avais un doute la dessus. Le problème c'est que derrière mon taux je n'ai pas toujours autant de variable.
Jusqu'au taux c'est toujours la même chose mais après il peut y en avoir 26 comme 30.

Est-ce une contrainte ?
 
Re : Importer des données d'un fichier .txt

d'apres ce que je viens d'essayer, il semblerai que oui.
Si tu defini ton input avec 26 champs et que ta ligne de texte en comprend 30, le second passage dans le loop prendra le 27eme comme le 1er champs (c'est a dire que LDate prendra la valeur du 27eme champs) et tout se decale à chaque tour !
 
Re : Importer des données d'un fichier .txt

Re Hélène,

Avec les éléments fournis, je suis arrivé à quelque chose d'acceptable.
La méthode choisie explose la ligne dans un tableau (tbl).
Les éléments sont récupérés dans ce tableau.

Il y a des conversions de date à faire dans le fichier texte puisque certaines comportent les heures.

Vois si cela te convient.

Je te conseille de lire l'aide excel ou de faire des recherches sur le forum en ce qui concerne les Input , Line Input, Put, Write etc....

A+
 
Re : Importer des données d'un fichier .txt

Bonjour le forum, Larson, Hasco,

Dans ton dernier message Hasco tu me dis avoir fais un essai concluant mais tu n'as pas mis de fichier en pièce jointe ... est-ce normal ?

Je vais me plonger dans mes recherches pour les Input , Line Input, Put, Write etc....

Merci beaucoup.
 
Re : Importer des données d'un fichier .txt

bonjour Helène,

Désolé pour cet oubli.

voici la macro, commentée
Code:
Private Sub Import_données()
    Dim xlLigne As Long
    Dim txtLigne As String
    Dim LDate As String
    Dim c As Range    'Cellule de boucle                                
    Dim tbl               'Tableau des donnée de ligne
    ' Création de la feuille de données
    Sheets(1).Name = "Tableau données"
    With Sheets(1)
        .Cells(1, 1).Value = "Date"
        .Cells(1, 2).Value = "taux"
        On Error Resume Next
        NomFiche = Application.GetOpenFilename("text files (*.txt), *.txt")
        Open (NomFiche) For Input As #1
        Do
            Line Input #1, txtLigne
            'ôter les guillemets [chr(34)] de la ligne
            txtLigne = Replace(txtLigne, Chr(34), "")
            'Mise en tableau de la ligne, séparateur de champ: virgule
            tbl = Split(txtLigne, ",")
            'Optention de la date
            LDate = tbl(0)
            'Si l'heure est incluse, L'ôter (marquée par la présence des deux-point
            If InStr(1, LDate, ":") > 0 Then
                'Récupération de la date (position du premier espace trouvé -1)
                LDate = Left(LDate, InStr(1, LDate, " ") - 1)
            End If
            'Mise au format pour recherche
            LDate = Format(CDbl(LDate), "dd/mm/yyyy")
            For Each c In Sheets("Tableau données").Range("A:A")
                If IsEmpty(c) Then Exit For
                If c.Text = LDate Then
                    With c.Offset(, 1)
                        .Value = Val(tbl(7)) / 100
                        .NumberFormat = "0.00%"
                    End With
                End If
                xlLigne = xlLigne + 1
                Set c = .Cells(xlLigne, 1)
        Next
    Loop While Not EOF(1)
    Close #1
End With
End Sub

A+
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
466
Réponses
2
Affichages
1 K
Réponses
15
Affichages
785
Réponses
3
Affichages
298
Retour