ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   Importing a file(s) (https://www.excelbanter.com/excel-worksheet-functions/104211-importing-file-s.html)

dan

Importing a file(s)
 
Worked great. Understood the process but now I want to import a second file
after the end of the first file.

Same file twice, fisrt in a Delimited format - to extraxct the header info
(fisrt 20 lines). But then I want to open the file again and extract the data
in a Fixed Width format undernear the header infor above.

The rest of the file will vary in length, from 1000 to 30,000.

Thanks



Dave Peterson wrote:

I'd just import it to a new workbook, then copy what I want and paste to where I
want it. Then close the new workbook.

Option Explicit
Sub testme01()

Dim DestCell As Range
Dim TextWks As Worksheet

Set DestCell = ActiveSheet.Range("a10")

Workbooks.OpenText Filename:="C:\yourfilenamehere.txt", _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1)

Set TextWks = ActiveSheet

TextWks.Range("1:35").Copy _
Destination:=DestCell

TextWks.Parent.Close savechanges:=False

End Sub

Record a macro when you do the importing and replace my Opentext line with
yours.


Dan wrote:

I want to import a file into excel but I want to limit the number of lines
that is imported. For example the file may be 150 lines but I only want the
first 35. I want to automate this task.

Also I want the to import the data at a specific line in excel - not A1,
somewhere around A10.

Thanks


dan

Importing a file(s)
 
OK. Here is what I have to achieve this task. This was created by recoding a
macro then tweaking the file. It can probably be cleaned up some more.

Now I need to accomplish two additonal tasks:
1. Have the user select the file;

myFileName = Application.GetOpenFilename(filefilter:="Text or ASC Files,
*.txt; *.asc", _
Title:="Select the Data File")

2. A stand alone macro so it can be run by selecting an icon on the desk top.

Thanks

Sub Import_Files()
'
' Import_Files Macro
'

Workbooks.OpenText Filename:= _
"C:\myfile.txt" _
, Origin:=437, StartRow:=1, DataType:=xlFixedWidth,
FieldInfo:=Array( _
Array(0, 1), Array(9, 1), Array(12, 1), Array(18, 1), Array(22, 1),
Array(24, 1), Array(26, _
1), Array(34, 1), Array(35, 1), Array(37, 1), Array(40, 1),
Array(43, 1), Array(46, 1), _
Array(49, 1), Array(52, 1), Array(55, 1), Array(58, 1)),
TrailingMinusNumbers:=True
Rows("6:6").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("Book1").Activate
Range("A6").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Columns("A:AB").Select
Columns("A:AB").EntireColumn.AutoFit
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("A6").Select
Windows("myfile.txt").Activate
Range("D637").Select
ActiveWindow.Close
Workbooks.OpenText Filename:= _
"C:\myfile.txt" _
, Origin:=437, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True,
Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
Rows("1:5").Select
Selection.Copy
Application.CutCopyMode = False
Selection.Copy
Windows("Book1").Activate
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
Windows("myfile.txt").Activate
Range("B9").Select
ActiveWindow.Close
End Sub

"Dan" wrote:

Worked great. Understood the process but now I want to import a second file
after the end of the first file.

Same file twice, fisrt in a Delimited format - to extraxct the header info
(fisrt 20 lines). But then I want to open the file again and extract the data
in a Fixed Width format undernear the header infor above.

The rest of the file will vary in length, from 1000 to 30,000.

Thanks



Dave Peterson wrote:

I'd just import it to a new workbook, then copy what I want and paste to where I
want it. Then close the new workbook.

Option Explicit
Sub testme01()

Dim DestCell As Range
Dim TextWks As Worksheet

Set DestCell = ActiveSheet.Range("a10")

Workbooks.OpenText Filename:="C:\yourfilenamehere.txt", _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1)

Set TextWks = ActiveSheet

TextWks.Range("1:35").Copy _
Destination:=DestCell

TextWks.Parent.Close savechanges:=False

End Sub

Record a macro when you do the importing and replace my Opentext line with
yours.


Dan wrote:

I want to import a file into excel but I want to limit the number of lines
that is imported. For example the file may be 150 lines but I only want the
first 35. I want to automate this task.

Also I want the to import the data at a specific line in excel - not A1,
somewhere around A10.

Thanks



All times are GMT +1. The time now is 04:10 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com