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 SubSuper 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
Nextbonjour,
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