Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default Change delimiter position based off of Last Name

Alright, here we go... I have no idea where to start because I am not
to familiar with excel vba programming. But let me try and explain
what the situation is to the best of my ability. I have a page of
addresses that was scanned and converted over to word with some image
to text software. Then I got it into a text file and finally a csv
file. Its in this format most of the time:
Examples-
Row 1 - ABEL, Mary-Fund Mutual Grp, Tec Clms
Row 2 - Expert, PO Box 1621, Houston, TX 77054
Row 3 - P555-621-7474, F555-218-1998
Row 4 - ARLINGTON, Kyle-Full Ins Grp, Clms
Row 5 - Expert, 2800 Post Oak Blvd, Houston, TX 77056
Row 6 - P664-621-7474, F665-218-1998

(the number of rows in between each address sometimes varies)

and I need it in this format:
Row 1 - ABEL, Mary-Fund Mutual Grp, Tec Clms Expert, PO Box 1621,
Houston, TX 77054, P555-621-7474, F555-218-1998
Row 2 - ARLINGTON, Kyle-Full Ins Grp, Clms Expert, PO Box 3434,
Houston, TX 77054 P664-621-7474, F665-218-1998

All one line and 8 columns. I figure it would be easiest to write a
script that loops through the csv file and searches for a text that
only has letter characters and all caps in the front of the row...
which would be the Last Name field also which is always in the front.
Then in between each it removes the "returns". I don't know if I was
clear enough or if someone needs further clarification by all means...
I am absolutely stuck and I really would appreciate any help or
guidance on the situation! I have looked at other examples of looping
a csv file... it seems pretty basic, but this to me is a little mind
boggling.

Thanks for any help!!

-Matt P
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,049
Default Change delimiter position based off of Last Name

is every "line" spread over two rows? If so, then step 1 would be to
concatenate the 2nd rows to the 1st row then delete the 2nd row

Hit Alt +F11 to open the development environment.
Then on the menu hit Insert / module

this opens a standard code modue
paste this:

Sub combine()
Dim rw As Long
For rw = Range("A1").End(xlDown) To 2 Step -2
Cells(rw - 1, 1) = Cells(rw - 1, 1) & " " & Cells(rw, 1)
Rows(rw).Delete
Next
End Sub

the code finds the last row. the data from this is added to the data from
the row above, then the row deleted. this is repeated for every row

all being well, you now have a column of data comma separated. Now you can
use the worksheet menu Data then Text To Columns to tablulate the data




"Matt P" wrote in message
...
Alright, here we go... I have no idea where to start because I am not
to familiar with excel vba programming. But let me try and explain
what the situation is to the best of my ability. I have a page of
addresses that was scanned and converted over to word with some image
to text software. Then I got it into a text file and finally a csv
file. Its in this format most of the time:
Examples-
Row 1 - ABEL, Mary-Fund Mutual Grp, Tec Clms
Row 2 - Expert, PO Box 1621, Houston, TX 77054
Row 3 - P555-621-7474, F555-218-1998
Row 4 - ARLINGTON, Kyle-Full Ins Grp, Clms
Row 5 - Expert, 2800 Post Oak Blvd, Houston, TX 77056
Row 6 - P664-621-7474, F665-218-1998

(the number of rows in between each address sometimes varies)

and I need it in this format:
Row 1 - ABEL, Mary-Fund Mutual Grp, Tec Clms Expert, PO Box 1621,
Houston, TX 77054, P555-621-7474, F555-218-1998
Row 2 - ARLINGTON, Kyle-Full Ins Grp, Clms Expert, PO Box 3434,
Houston, TX 77054 P664-621-7474, F665-218-1998

All one line and 8 columns. I figure it would be easiest to write a
script that loops through the csv file and searches for a text that
only has letter characters and all caps in the front of the row...
which would be the Last Name field also which is always in the front.
Then in between each it removes the "returns". I don't know if I was
clear enough or if someone needs further clarification by all means...
I am absolutely stuck and I really would appreciate any help or
guidance on the situation! I have looked at other examples of looping
a csv file... it seems pretty basic, but this to me is a little mind
boggling.

Thanks for any help!!

-Matt P


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8,520
Default Change delimiter position based off of Last Name

Matt,

Try the below..You dont need to open the CSV file. Open a workbook. Change
the file name...mentioned in the code and try....

Sub ReadCSV()

Dim intFile As Integer
Dim strData As String
Dim strTemp As String
Dim arrData As Variant
Dim lngRow As Long

intFile = FreeFile
Open "c:\1.csv" For Input As #intFile
Do While Not EOF(intFile)
Line Input #intFile, strData
arrData = Split(strData, ",")
If IsNumeric(Left(arrData(0), 1)) = False And _
IsNumeric(Right(arrData(0), 1)) = False And _
UCase(arrData(0)) = arrData(0) Then
If strTemp < "" Then Range("A" & lngRow) = strTemp
lngRow = lngRow + 1
strTemp = Trim(strData)
Else
strTemp = strTemp & "," & Trim(strData)
End If
Loop
Close #intFile
Range("A" & lngRow) = strTemp

End Sub



If this post helps click Yes
---------------
Jacob Skaria


"Matt P" wrote:

Alright, here we go... I have no idea where to start because I am not
to familiar with excel vba programming. But let me try and explain
what the situation is to the best of my ability. I have a page of
addresses that was scanned and converted over to word with some image
to text software. Then I got it into a text file and finally a csv
file. Its in this format most of the time:
Examples-
Row 1 - ABEL, Mary-Fund Mutual Grp, Tec Clms
Row 2 - Expert, PO Box 1621, Houston, TX 77054
Row 3 - P555-621-7474, F555-218-1998
Row 4 - ARLINGTON, Kyle-Full Ins Grp, Clms
Row 5 - Expert, 2800 Post Oak Blvd, Houston, TX 77056
Row 6 - P664-621-7474, F665-218-1998

(the number of rows in between each address sometimes varies)

and I need it in this format:
Row 1 - ABEL, Mary-Fund Mutual Grp, Tec Clms Expert, PO Box 1621,
Houston, TX 77054, P555-621-7474, F555-218-1998
Row 2 - ARLINGTON, Kyle-Full Ins Grp, Clms Expert, PO Box 3434,
Houston, TX 77054 P664-621-7474, F665-218-1998

All one line and 8 columns. I figure it would be easiest to write a
script that loops through the csv file and searches for a text that
only has letter characters and all caps in the front of the row...
which would be the Last Name field also which is always in the front.
Then in between each it removes the "returns". I don't know if I was
clear enough or if someone needs further clarification by all means...
I am absolutely stuck and I really would appreciate any help or
guidance on the situation! I have looked at other examples of looping
a csv file... it seems pretty basic, but this to me is a little mind
boggling.

Thanks for any help!!

-Matt P

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default Change delimiter position based off of Last Name

On May 22, 12:06*pm, Jacob Skaria
wrote:
Matt,

Try the below..You dont need to open the CSV file. Open a workbook. Change
the file name...mentioned in the code and try....

Sub ReadCSV()

Dim intFile As Integer
Dim strData As String
Dim strTemp As String
Dim arrData As Variant
Dim lngRow As Long

intFile = FreeFile
Open "c:\1.csv" For Input As #intFile
Do While Not EOF(intFile)
Line Input #intFile, strData
arrData = Split(strData, ",")
If IsNumeric(Left(arrData(0), 1)) = False And _
IsNumeric(Right(arrData(0), 1)) = False And _
UCase(arrData(0)) = arrData(0) Then
If strTemp < "" Then Range("A" & lngRow) = strTemp
lngRow = lngRow + 1
strTemp = Trim(strData)
Else
strTemp = strTemp & "," & Trim(strData)
End If
Loop
Close #intFile
Range("A" & lngRow) = strTemp

End Sub

If this post helps click Yes
---------------
Jacob Skaria

"Matt P" wrote:
Alright, here we go... I have no idea where to start because I am not
to familiar with excel vba programming. *But let me try and explain
what the situation is to the best of my ability. *I have a page of
addresses that was scanned and converted over to word with some image
to text software. *Then I got it into a text file and finally a csv
file. *Its in this format most of the time:
Examples-
Row 1 - ABEL, Mary-Fund Mutual Grp, Tec Clms
Row 2 - Expert, PO Box 1621, Houston, TX 77054
Row 3 - P555-621-7474, F555-218-1998
Row 4 - ARLINGTON, Kyle-Full Ins Grp, Clms
Row 5 - Expert, 2800 Post Oak Blvd, Houston, TX 77056
Row 6 - P664-621-7474, F665-218-1998


(the number of rows in between each address sometimes varies)


and I need it in this format:
Row 1 - ABEL, Mary-Fund Mutual Grp, Tec Clms Expert, PO Box 1621,
Houston, TX 77054, P555-621-7474, F555-218-1998
Row 2 - ARLINGTON, Kyle-Full Ins Grp, Clms Expert, PO Box 3434,
Houston, TX 77054 P664-621-7474, F665-218-1998


All one line and 8 columns. *I figure it would be easiest to write a
script that loops through the csv file and searches for a text that
only has letter characters and all caps in the front of the row...
which would be the Last Name field also which is always in the front.
Then in between each it removes the "returns". *I don't know if I was
clear enough or if someone needs further clarification by all means...
I am absolutely stuck and I really would appreciate any help or
guidance on the situation! *I have looked at other examples of looping
a csv file... it seems pretty basic, but this to me is a little mind
boggling.


Thanks for any help!!


-Matt P


Yes, Wow thank you Jacob Skaria that worked perfect!
Reply
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
Insert Blank Row at a Position Based on Value? [email protected] Excel Discussion (Misc queries) 2 August 30th 09 08:15 PM
Parse delimiter is change from text to numbers ORLANDO V[_2_] Excel Discussion (Misc queries) 11 January 2nd 09 06:56 PM
How do I change the DEFAULT delimiter for pasting text data? Phil W Excel Discussion (Misc queries) 0 December 1st 06 04:09 PM
Change delimiter in import function from comma to tab marksince1984[_7_] Excel Programming 1 June 13th 06 05:38 AM
Change column Delimiter programmatically Christian Nein Excel Programming 1 June 14th 05 02:18 PM


All times are GMT +1. The time now is 09:34 AM.

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"