Macro importation d'un fichier txt choisit et et traitement

Bonjour,

J'essaie de faire une macro me permettant d'ouvrir un fichier Txt grâce à une fenêtre de choix, puis d'insérer ce Txt dans une cellule donnée.

"

Sub SelectData()

'

' Insert_Data Macro

'

'

With Application.FileDialog(msoFileDialogFilePicker)

Application.FileDialog(msoFileDialogFilePicker).Title = "Choisir un fichier Txt"

Application.FileDialog(msoFileDialogFilePicker).ButtonName = "Traitement des données"

Application.FileDialog(msoFileDialogFilePicker).InitialFileName = "H:\Doc1\Service\*.*"

Application.FileDialog(msoFileDialogFilePicker).Filters.Clear

Application.FileDialog(msoFileDialogFilePicker).Filters.Add "Fichiers Txt", "*.txt"

If Application.FileDialog(msoFileDialogFilePicker).Show = True Then

MsgBox Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1)

With ActiveSheet.QueryTables.Add(Connection:= _

Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1), Destination:=Range("Feuil1!$B$5"))

.FieldNames = False

.RowNumbers = False

.FillAdjacentFormulas = False

.PreserveFormatting = True

.RefreshOnFileOpen = False

.RefreshStyle = xlInsertDeleteCells

.SavePassword = False

.SaveData = True

.AdjustColumnWidth = True

.RefreshPeriod = 0

.TextFilePromptOnRefresh = False

.TextFilePlatform = 932

.TextFileStartRow = 1

.TextFileParseType = xlDelimited

.TextFileTextQualifier = xlTextQualifierDoubleQuote

.TextFileConsecutiveDelimiter = False

.TextFileTabDelimiter = True

.TextFileSemicolonDelimiter = False

.TextFileCommaDelimiter = True

.TextFileSpaceDelimiter = False

.TextFileColumnDataTypes = Array(1, 1)

.TextFileTrailingMinusNumbers = True

.Refresh BackgroundQuery:=False

End With

End If

End With

End Sub

"

J'ai ici un problème dans le 3ème bloc, avec la fonction __With ActiveSheet.QueryTables.Add(Connection:= _

".............................", Destination:=Range("Feuil1!$B$5"))" __

Je souhaiterais qu'il me traite le fichier précedemment choisit !

Je suis débutant en VBA et ne connais donc pas toutes les liaisons entre formules.

En attendant une réponse je l'espère favorable, Bonne journée

bonjour,

propostion de correction

Sub SelectData()
'
' Insert_Data Macro
'

'
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Choisir un fichier Txt"
        .ButtonName = "Traitement des données"
        .InitialFileName = "H:\Doc1\Service\*.*"
        .Filters.Clear
        .Filters.Add "Fichiers Txt", "*.txt"

        If .Show = True Then
            fn = .SelectedItems(1)

            With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & _
                                                         fn, Destination:=Sheets("feuil1").Range("B5"))
                .FieldNames = False
                .RowNumbers = False
                .FillAdjacentFormulas = False
                .PreserveFormatting = True
                .RefreshOnFileOpen = False
                .RefreshStyle = xlInsertDeleteCells
                .SavePassword = False
                .SaveData = True
                .AdjustColumnWidth = True
                .RefreshPeriod = 0
                .TextFilePromptOnRefresh = False
                .TextFilePlatform = 932
                .TextFileStartRow = 1
                .TextFileParseType = xlDelimited
                .TextFileTextQualifier = xlTextQualifierDoubleQuote
                .TextFileConsecutiveDelimiter = False
                .TextFileTabDelimiter = True
                .TextFileSemicolonDelimiter = False
                .TextFileCommaDelimiter = True
                .TextFileSpaceDelimiter = False
                .TextFileColumnDataTypes = Array(1, 1)
                .TextFileTrailingMinusNumbers = True
                .Refresh BackgroundQuery:=False
            End With
        End If
    End With
End Sub

Super Merci beaucoup pour ton aide,

je vais reprendre mais erreurs pour voir ce qu'il n'allait pas.

C'est incroyable comme c'est pratique les forums ^^

Bonne journée

Bonjour,

en fait il n'y avait qu'une seule erreur (manque TEXT; dans connection). Le reste est cosmétique.

Re-bonjour,

Suite au code ci-dessus qui fonctionne parfaitement, j'ai apporté quelques modifications afin qu'il m'ouvre plusieurs fichiers .Txt en même temps, et qu'il me les traite dans 5 feuilles différentes mais de la même façon (5 fichiers .Txt).

Je rencontre un problème puisque j'ai remplacé fn(1) = SelectedItems(1) par fn( "" & i) = SelectedItems("" & i), Sachant qu'il y a une boucle pour que i aille de 1 à 5 ! mais je ne sais pas comment introduire cette phrase ...

Sinon le reste fonctionne ^^

Merci d'avance pour vos éventuelles solutions.

With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Choisir un fichier Txt"
        .ButtonName = "Traitement des données"
        .InitialFileName = "H:\...\*.*"
        .Filters.Clear
        .Filters.Add "Fichiers Txt", "*.txt"
        .AllowMultiSelect = True

        If .Show = True Then
            For Compteur = 1 To .SelectedItems.Count
                MsgBox .SelectedItems(Compteur)
            Next

            For i = 1 To 5
                Sheets("Éprouvette " & i).Select
                Cells.Select
                Selection.ClearContents

                For Each Legraph In ActiveSheet.ChartObjects
                Legraph.Delete
                Next

            fn ("") & i = .SelectedItems("" & i)

'1
                With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & _
                                                            fn("") & i, Destination:=Sheets("Éprouvette " & i).Range("B5"))
                    .FieldNames = False
                    .RowNumbers = False
                    .FillAdjacentFormulas = False
                    .PreserveFormatting = True
                    .RefreshOnFileOpen = False
                    .RefreshStyle = xlInsertDeleteCells
                    .SavePassword = False
                    .SaveData = True
                    .AdjustColumnWidth = True
                    .RefreshPeriod = 0
                    .TextFilePromptOnRefresh = False
                    .TextFilePlatform = 932
                    .TextFileStartRow = 1
                    .TextFileParseType = xlDelimited
                    .TextFileTextQualifier = xlTextQualifierDoubleQuote
                    .TextFileConsecutiveDelimiter = False
                    .TextFileTabDelimiter = True
                    .TextFileSemicolonDelimiter = False
                    .TextFileCommaDelimiter = True
                    .TextFileSpaceDelimiter = False
                    .TextFileColumnDataTypes = Array(1, 1)
                    .TextFileTrailingMinusNumbers = True
                    .Refresh BackgroundQuery:=False
                End With
            Next

bonjour,

essaie ceci

With Application.FileDialog(msoFileDialogFilePicker)
    .Title = "Choisir un fichier Txt"
    .ButtonName = "Traitement des données"
    .InitialFileName = "H:\...\*.*"
    .Filters.Clear
    .Filters.Add "Fichiers Txt", "*.txt"
    .AllowMultiSelect = True
    If .Show = True Then
        For Compteur = 1 To .SelectedItems.Count
            MsgBox .SelectedItems(Compteur)
        Next
        For i = 1 To 5
            Sheets("Éprouvette " & i).Cells.ClearContents
            For Each Legraph In ActiveSheet.ChartObjects
                Legraph.Delete
            Next
            With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & _
                                                         .SelectedItems("" & i), Destination:=Sheets("Éprouvette " & i).Range("B5"))
                .FieldNames = False
                .RowNumbers = False
                .FillAdjacentFormulas = False
                .PreserveFormatting = True
                .RefreshOnFileOpen = False
                .RefreshStyle = xlInsertDeleteCells
                .SavePassword = False
                .SaveData = True
                .AdjustColumnWidth = True
                .RefreshPeriod = 0
                .TextFilePromptOnRefresh = False
                .TextFilePlatform = 932
                .TextFileStartRow = 1
                .TextFileParseType = xlDelimited
                .TextFileTextQualifier = xlTextQualifierDoubleQuote
                .TextFileConsecutiveDelimiter = False
                .TextFileTabDelimiter = True
                .TextFileSemicolonDelimiter = False
                .TextFileCommaDelimiter = True
                .TextFileSpaceDelimiter = False
                .TextFileColumnDataTypes = Array(1, 1)
                .TextFileTrailingMinusNumbers = True
                .Refresh BackgroundQuery:=False
            End With
        Next
    End If
End With
Rechercher des sujets similaires à "macro importation fichier txt choisit traitement"