Bonjour à tous,

malgré de longues recherches, je n'ai pas trouvé un code correspondant à mon objectif et si j'en ai trouvé un, j'étais incapable de l'adapter à mes besoins.

Le code suivant importe bien les données de mon fichier (variable strFile), mais seulement la première colonne. Le délimiteur est " / ".

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
'----------------------------------------Méthode Route Riter------------------------------------------------------
'
' Importer une liste Route Riter
'
  Private Sub cmdRouteRiter_Click()
 
  Application.DisplayAlerts = False 'désactive les alertes Excel
 
  Dim ws As Worksheet, strFile As String
 
  strFile = Application.GetOpenFilename("Text Files (*.txt),*.txt", , "Veuillez choisir le fichier texte...")
 
  If strFile = "Faux" Then Exit Sub
 
  Workbooks.OpenText FileName:=strFile, Origin:=xlWindows, _
  StartRow:=1, DataType:=xlDelimited, Local:=True, Tab:=False, Semicolon:=False, comma:=False, Space:=False, _
  other:=True, otherchar:="\"
 
' CopierColler
  Columns("A:A").Select
  selection.Copy
  ActiveWorkbook.Close
  Windows("Annuaire MSTS_V110.xlsm").Activate
  Sheets("RouteRiter").Select
  Range("A1").Select
  ActiveSheet.Paste
....................
End Sub
J'ai utilisé l'enregistreur de macros pour essayer de trouver une solution à mon problème. Il fait bien ce qu'il faut, mais le nom du fichier à importer est fixe, alors que je le veux variable.

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
31
32
33
34
35
36
37
Sub Import_Txt()
'
' Import_Txt Macro
'
 
'
    Application.CutCopyMode = False
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;C:\Users\Pascal\Desktop\Liste\lgso.txt", Destination:=Range("$A$1"))
        .CommandType = 0
        .Name = "lgso"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileOtherDelimiter = "\"
        .TextFileColumnDataTypes = Array(1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
Comment résoudre ce problème, sachant que l'importation doit se faire en A1 du Active.Workbook dans Sheets("RouteRiter") ?

Merci d'avance de vos conseils.

Cordialement
Pascal