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 :
cependant ceci me retourne l'erreur suivante :
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
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 :
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
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
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
Partager