Bonjour à tous,
Je souhaite importer un fichier .asc à partir de la ligne 15 jusqu'à la dernière ligne non vide et toutes les colonnes (séparées par une tabulation) : j'ai donc utilisé l'enregistreur de macro puis j'ai adapté et j'ai obtenu le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 S = ThisWorkbook.Path & "\" & E & ".asc"
    MsgBox (S)
    With Sheets("Feuil1").QueryTables.Add(Connection:= _
        "TEXT;S" _
        , Destination:=Range("A1"))
        .Name = E
        .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 = 15
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1)
        .TextFileDecimalSeparator = "."
        .Refresh BackgroundQuery:=False
    End With
cependant ceci me retourne l'erreur suivante :
Erreur d'exécution 1004 Impossible de trouver le fichier texte pour l'actualisation de cette plage de données externe. Assurez vous que le texte n'a été ni déplacé ni renommé

Or mon fichier est bien a sa place avec le bon nom ! JE me suis donc tourné vers la faq et j'ai trouvé ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub importFichierTexte_ADO()
    Dim Rc As ADODB.Recordset
    Dim cn As String, Chemin As String, Fichier As String
    Dim i As Long
 
    Chemin = "C:\Documents and Settings\michel\dossier"
    Fichier = "monFichier.txt"
 
    cn = "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
        "Dbq=" & Chemin & ";Extensions=asc,csv,tab,txt"
 
    Set Rc = New ADODB.Recordset
    Rc.Open Source:="SELECT * FROM " & Fichier & _
        " WHERE NomChamp = 'x'", ActiveConnection:=cn
 
    If Not Rc.EOF Then
        'For i = 0 To Rc.Fields.Count - 1 'recuperation entetes
            'Cells(1, 1).Offset(0, i) = Rc.Fields(i).Name
        'Next
        Range("A2").CopyFromRecordset Rc
    End If
 
    Rc.Close
End Sub
Mais ceci me renvoie l'erreur suivante : Erreur de compilation type défini par l'utilisateur non défini et la ligne : Dim Rc As ADODB.Recordset est en jaune
Par ailleurs je n'arrive pas à comprendre comment lui dire importe de la ligne 15 à la dernière ligne non vide.

Merci d'avance pour votre aide

Vinvin