Sub GetOpenFileNameExample5()
sPath = "D:\test\"
ChDrive sPath
ChDir sPath
'sPath = "D:\test\"
st = Application.GetOpenFilename("text files (*.txt),*.txt", , "Bestandsselectie", , True)
If TypeName(st) = "Boolean" Then Exit Sub
'voor meerdere files onderelkaar:
With ActiveSheet.QueryTables.Add("TEXT;" & st(1), Range("A" & Rows.Count).End(xlUp).Offset(1))
.Name = st(1)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlMSDOS
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.Refresh BackgroundQuery:=False
End With
End Sub
Bovenstaande code importeert een zelf te kiezen tekstfile uit een directory in een bestaand excel bestand.
Als ik een volgende file wil importeren plaatst hij deze in de eerste lege regel.
Hij kijkt hierbij naar de laatste gevulde cel in kolom A en plaats de volgende file in de regel daaronder.
Maar omdat er er in kolom b tm f nog wel wat staat, komt niet alles netjes onder elkaar te staan, wat wel noodzakelijk is ivm berekeningen
Wat ik dus wil is dat hij niet alleen naar kolom A kijkt maar ook naar de overige kolommen.
With ActiveSheet.QueryTables.Add("TEXT;" & st(1), Range("A" & Rows.Count).End(xlUp).Offset(1))
Deze regel moet dus aangepast worden
With ActiveSheet.QueryTables.Add("TEXT;" & st(1), Range("A" & usedrange.rows.count+1))
Dit heb ik ook al geprobeert maar werkt ook niet
Als bijlage de excel file en een voorbeeld van het tekst bestand.
bij voorbaat dank
Willem