Extraire des fichiers txt depuis excel automatiquement

J

Jean-Marc

Guest
Bonjour

Je désire savoir comment je peux, importer des données externes en fichier
txt sur Excel automatiquement. Tous les jours je reçois un fichier nommé avec le jour (ex. : 01.txt ainsi de suite) J’ai créé un tableau sur Excel qui me
permet d’extraire manuellement les données sur 2 colonnes. Sachant que la colonne N° 1 de m’intéresse pas puis-je aussi extraire que la 2ème colonne ? D’un fichier txt automatiquement. Merci pour votre aide.
Salutations Jean-Marc
 
@

@+Thierry

Guest
Bonjour Jean Marc, JC, le Forum

En supposant que ton fichier TXT est construit avec une Tabulation en Séparateur de colonnes (Chr(9))...

Voici un code qui importera en colonne "A" de la feuille active le contenu de la seconde colonne du fichier TXT...

Option Explicit

Sub ImportTXT()
Dim TheRecord As String
Dim TheContainer As Variant
Dim ThePath As String
Dim i As Integer

i = 1

ThePath = "C:\C\My Test\TXT_Tab_Separator.txt"


Open ThePath For Input As #1

    Do While Not EOF(1)
      Line Input #1, TheRecord

      TheContainer = Split(TheRecord, Chr(9))

            With ActiveSheet
            On Error Resume Next
                .Cells(i, 1) = TheContainer(1)
            End With
        i = i + 1
    Loop

Close #1
End Sub



Maintenant si ton séparateur est le Point Virgule, tu peux changer Chr(9) par Chr(59)... (voir Aide à "Chr Function")

Et si par exemple c'est la première colonne du TXT que tu veux importer alors c'est au niveau de la ligne

.Cells(i, 1) = TheContainer(1)

Qui deviendra :
.Cells(i, 1) = TheContainer(0)

Bonne Journée et Saint Valentin en Suisse !
@+Thierry
 
J

Jean-Marc

Guest
Re bonjour

Merci c'est cool, ça marché.

Une autre question : si mon fichier txt ne comporte pas de tabulation ni de virgule. puis-je faire la même chose? sachant que quand je vais importer du texte sur Excel je lui donne une largeur fixe "-Les champs sont alignés en colonnes et séparés par des espaces" dans l'assistance d'importation de texte afin qu'il me donne automatiquement des tab lors de l'importation?

Merci encore pour la première solution

@plus et bonne journée.

Jean-Marc
 
@

@+Thierry

Guest
Re bonjour Jean-Marc

Voici une version qui utilis la Function Mid pour retourner un nombre précis de caractères...

Ici je récupére du Dizième Caractère (inclus) au Quatorzième (inclus)


Option Explicit

Sub ImportTXT()
Dim TheRecord As String
Dim TheContainer As String
Dim ThePath As String
Dim i As Integer

i = 1

ThePath = "C:\C\My Test\TXT_Tab_Separator.txt"


Open ThePath For Input As #1

    Do While Not EOF(1)
      Line Input #1, TheRecord

      TheContainer = Mid(TheRecord, 10, 5)

            With ActiveSheet
            On Error Resume Next
                .Cells(i, 1) = TheContainer
            End With
        i = i + 1
    Loop

Close #1
End Sub


Pour changer, par exemple du 5em au 7em caractère, j'écrirais
TheContainer = Mid(TheRecord, 5, 3)

Pour les espaces, en utilisant ma précédente méthode avec Split sur Chr(160) ou Chr(32) (faire des essaies)

Bon Aprèm
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 149
Membres
103 132
dernier inscrit
hedfahmi