Import fichier text

roro69

XLDnaute Impliqué
Bonjour et merci pour votre aide

Voici mon problème
1)
J'ai ce code pour importer un fichier texte (mes fichiers textes sont tous formatés à l'identique comme le fichier joint)
Sub Tst()
Dim Fichier As Variant
ChDir ThisWorkbook.Path
Fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If Fichier <> False Then
Lire Fichier
End If
End Sub

Function Lire(ByVal NomFichier As String)
Dim Chaine As String
Dim Ar() As String
Dim i As Long
Dim iRow As Long, iCol As Long
Dim NumFichier As Integer
Dim Separateur As String * 1

' Séparateur Espace
Separateur = ""

Cells.Clear
NumFichier = FreeFile
iRow = 1

Open NomFichier For Input As #NumFichier
Do While Not EOF(NumFichier)
iCol = 1
Line Input #NumFichier, Chaine
Ar = Split(Chaine, Separateur)
For i = LBound(Ar) To UBound(Ar)
Cells(iRow, iCol) = Ar(i)
iCol = iCol + 1
Next
iRow = iRow + 1
Loop
Close #NumFichier
End Function
Les données sont bien importées dans ma feuille ;mais elle sont éparpillées ,quel dois je transformer dans le code pour pouvoir récuperer les données que dans 3 colonnes comme dans le fichier texte ci joint.


Merci pour l'aide apporté et le temps consacré.
 

Pièces jointes

  • Pages Haut Bas.doc
    55 KB · Affichages: 20

Paf

XLDnaute Barbatruc
Re : Import fichier text

Bonjour,

Pas cherché la cause de cette distribution.
Ci dessous le code pratiquement issu de l'enregistreur de macro suite à importation de données:

Code:
Function Lire(ByVal NomFichier As String)
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & NomFichier , _
        Destination:=Range("A1"))
        .Name = "Pages  Haut    Bas"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlFixedWidth
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1)
        .TextFileFixedColumnWidths = Array(7, 5)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Function

le fichier à importer doit bien un fichier texte

A+
 

Statistiques des forums

Discussions
312 329
Messages
2 087 324
Membres
103 516
dernier inscrit
René Rivoli Monin