J'ai écrit un code qui permet à l'utilisateur de sélectionner un dossier, puis il parcourt tous les fichiers du dossier, en copiant une colonne de données spécifique dans ma feuille de calcul 'PQ Analysis'.Importation de fichiers texte dans un document maître Excel (VBA)?
Je voudrais améliorer ce code, pour le rendre plus générique.
Y a-t-il un moyen de le modifier, donc je n'ai pas besoin de spécifier 'PQ Analysissheet' comme document maître? C'est-à-dire qu'il peut être appelé tout ce que l'utilisateur souhaite.
En outre, j'ouvre actuellement chaque fichier dans un nouveau classeur, et copie à partir de là. Je suis sûr qu'il doit y avoir un moyen de saisir directement à partir du fichier txt dans un tableau, et imprimer à partir de là?
Toutes les suggestions seraient appréciées. C'est le premier code VBA que j'ai écrit, donc je suis très nouveau dans cette langue! Merci.
Sub tabdelim()
Dim strFileToOpen
Dim InputFile As Workbook
Dim OutputFile As Workbook
'Dialogue box to select file to open
strFileToOpen = Application.GetOpenFilename _
(Title:="Please choose a file to open", _
FileFilter:="Text Files *.txt* (*.txt*),")
If strFileToOpen = False Then
MsgBox "No file selected.", vbExclamation, "No file selected!"
Exit Sub
Else
'Open selected file in new workbook
Workbooks.OpenText Filename:= _
strFileToOpen, _
Origin:=65001, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
Array(9, 1)), TrailingMinusNumbers:=True
End If
Set InputFile = ActiveWorkbook
'Now, copy what you want from InputFile:
ActiveSheet.Range("I3:I660").Copy
'Now, paste to OutputFile worksheet:
Windows("PQ Analysis spreadsheet.xls").Activate
Set OutputFile = ActiveWorkbook
Range("C43").Select
ActiveSheet.Paste
'Close InputFile
InputFile.Close
End Sub
'Dim strWorkbookName As String: strWorkbookName = InputBox ("Sélectionnez un classeur")' –
Utilisation de l'alimentation de requêtes serait plus simple et plus efficace. – Olly