LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #7   Report Post  
Posted to microsoft.public.excel,microsoft.public.excel.misc,microsoft.public.excel.programming,microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 34
Default Easiest Way to do this Importing method?

FYI-
Found the easiest way to do this is via linking the cells. I hi-light a
column of info from the CSV file, then paste it on another sheet in the
column I want it to go. Then I click the little clip board and select link
cells. And then I use this whole file as a template for all my work. Then
just save as when I'm done. Fastest, easiest way to do it.
Thanks!
D



"Patrik" wrote in message
m...
"D" wrote in message news:<HdXjd.244895$a85.37719@fed1read04...
Hey guys- been searching for a while now, and all the posts are a little
more complex than I think this needs to be. Can you help?

Basically, I have a CSV file that I need to import into another
'Template'
file. But- here's the key- not EVERY column in the CSV file needs to
import
into my template. Also, the columns in the CSV file are NOT in the same
order they need to be in the Template file. So, I need to be able to pick
and choose which columns import and go where. Does that make sense? Is
there
an easy 'import mapping' system to use or any other way to do this? Like
I
said, everything Im seeing is looking pretty complicated- more than I
think
it needs to be. This seems as if it'd be fairly easy to accomplish, I'm
just
not finding answers I need.
Thanks for any help.
D


Hello
Well I like programming/VBA approaches because its quick and gives you
good control. I dont know if there is any "Import wizard" that can do
this. To write code that does what you want is not very difficult.
A suggestion would be to read all of the CSV-file into an array and go
from there. It is easier and more effective to manupulate data "In
memory".
Something like this:
Function CSVFileToArray(inFile As String) As Variant
Dim fileHandle As Integer
Dim i As Integer
Dim outArray() As String
Dim tempStr As String
If Dir(inFile) = "" Then 'Check if the file exists
Msgbox "CSVFileToArray: Could not find/open " & inFile
Exit Function
End If
fileHandle = FreeFile()
Open inFile For Input As #fileHandle
i = 0
Do While Not EOF(fileHandle) ' Loop until end of file.
On Error Resume Next
Input #fileHandle, tempStr
On Error GoTo 0
If tempStr < "" And InStr(",", tempStr) = 0 Then
ReDim Preserve outArray(i)
outArray(i) = tempStr
i = i + 1
End If
Loop
Close #fileHandle
CSVFileToArray = outArray
End Function

Then you can describe what you want from the file in another array
that you initialize early on. Here is an example function from a
program I've done:

Type tFieldDesc
sFieldName As String
iColPos As Integer
bConvert As Boolean
bDate As Boolean
End Type

Function CreateFieldDescrArray() As tFieldDesc()
Static bIsInitialized As Boolean
Static arrFieldDesc(FIELD_DESC_ARRAY_UBOUND) As tFieldDesc
'CAUTION the global constant FIELD_DESC_ARRAY_UBOUND must be set to
'the number of field descriptions minus one!

'An array that contains descriptions of fields
'0 = The name of the field
'1 = The column position
'2 = Does the field need conversion
'3 = Is it a date field
If Not bIsInitialized Then
Dim arrTmp, vElement
arrTmp = Array( _
Array("Provid", "1", "", ""), Array("Status", "2", "Y", ""), _
Array("UPPDRAG", "6", "", ""), Array("Header", "7", "", ""), _
Array("Bestnamn", "8", "", ""), Array("BestAvd", "9", "", ""), _
Array("Memoid", "10", "", ""), Array("UtfAvd", "11", "", ""), _
Array("StartW", "12", "", "Y"), Array("EndW", "13", "", "Y"), _

Dim i As Integer
i = 0
For Each vElement In arrTmp
arrFieldDesc(i).sFieldName = vElement(0)
arrFieldDesc(i).iColPos = CInt(vElement(1))
arrFieldDesc(i).bConvert = False
If vElement(2) < "" Then
arrFieldDesc(i).bConvert = True
End If
arrFieldDesc(i).bDate = False
If vElement(3) < "" Then
arrFieldDesc(i).bDate = True
End If
i = i + 1
Next
bIsInitialized = True
End If
CreateFieldDescrArray = arrFieldDesc
End Function

Then you write the main data crunching Sub. Something like this:

Sub GetTheData()
arrFieldDescr = CreateFieldDescrArray()
arrTheWholeFile = CSVFileToArray("C:\Datafile.csv")

j = 0
k = 0
For i = 0 to Ubound(arrTheWholeFile)
If j Mod NUMBER_OF_COLUMNS = 0 Then
'NUMBER_OF_COLUMNS is a constant that has the number of columns
in the
'CSVfile you wish to process
j = 0
else
j = j + 1
end if
sResult = GetElement(arrFieldDescr, arrTheWholeFile(i), j)
if sResult < "" then
arrResult(k) = sResult
k = k + 1
end if
next
end sub

Function GetElement(arrFieldDescr, sElement, j) as string
GetElement = ""
For each item in arrFieldDescr
if item.iColPos = j then
GetElement = sElement
break
end if
next
end function


This was a very quick repsonse just to get you started along the way I
would reccomend. All variables should be declared of course.

Regards /Patrik



 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Macro/Method of Importing DATA in a loop Faraz A. Qureshi Excel Discussion (Misc queries) 2 August 5th 09 07:34 AM
Please post this thread a correct full method, method about Nast Runsome New Users to Excel 8 February 25th 08 03:29 PM
Please post this thread a complete correct method, method about te Nast Runsome New Users to Excel 0 February 23rd 08 09:42 PM
What is the easiest way to do this. Gmata Excel Worksheet Functions 1 November 25th 07 02:03 AM
Easiest Way to do this Importing method? D Excel Worksheet Functions 11 November 10th 04 02:44 AM


All times are GMT +1. The time now is 01:59 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"