Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Mailing List Parsing
Has anyone ever created something that would grab data and sort it into various columns to create a file which could be imported into a mailing program like ACT or Outlook?
For Example: I have a database with several entries similar to the following two examples: AND Products BV Scheepmakersstraat 5 3011 VH Rotterdam ZH The Netherlands Phone: +31 10-885-1200 Fax: +31 10-885-1300 E-mail: www.and.com Appian Logistics Software, Inc. 10317 Greenbriar Place Suite 100 Oklahoma City, OK 73159 USA Phone: 800-893-1250 E-mail: www.appianlogistics.com I've been able to handle all the recognizable lines (the Name, in bold, the Phone, Fax, e-mail & website. But I'd like to know if anyone has figured out a way to parse out the city, state, zip & country, if & when they exist. My working code, so far... Private Sub CommandButton1_Click() Dim i, j,m,k As Integer i = 5 j = 5 m = InputBox("Enter First Data Row") k = InputBox("Enter Last Data Row") For i = m To k If Cells(i, 1).Font.Bold = True Then Cells(j, 2).Value = Cells(i, 1).Value Cells(j, 3).Value = Cells(i + 1, 1).Value Cells(j, 4).Value = Cells(i + 2, 1).Value If Left(Cells(i + 3, 1).Value, 6) < "Phone:" Then Cells(j, 5).Value = Cells(i + 3, 1).Value End If j = j + 1 Else End If Next j = 5 For i = m To k If Left(Cells(i, 1).Value, 6) = "Phone:" Then Cells(j, 6).Value = Mid(Cells(i, 1).Value, 8, 80) If Len(Cells(j, 6)) 12 Then Cells(j, 6).Font.Bold = True End If j = j + 1 End If Next j = 5 For i = m To k If Left(Cells(i, 1).Value, 4) = "Fax:" Then Cells(j, 7).Value = Right(Cells(i, 1).Value, 12) j = j + 1 Else End If Next j = 5 For i = m To k If Left(Cells(i, 1).Value, 4) = "E-ma" Then Cells(j, 8).Value = Mid(Cells(i, 1).Value, 9, 99) Cells(j, 8).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="mailto:" + Cells(j, 8).Value, TextToDisplay:=Cells(j, 8).Value j = j + 1 Else End If Next j = 5 For i = m To k If Left(Cells(i, 1).Value, 3) = "www" Then Cells(j, 9).Value = Cells(i, 1).Value Cells(j, 9).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="http://" + Cells(i, 9).Value, TextToDisplay:=Cells(j, 9).Value j = j + 1 Else End If Next End Sub Many Thanks, Jim Berglund 403-217-0768 |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Mailing List Parsing
If you have the database then I don't really see the problem. You can control
what comes out and where it comes from. Can't you? If however by database you mean 'really big text file' then you are probably hooped because of potential inconsistencies in the source data. What if there is no Country or postal code. How about if the country is USA or US or U.S.A. Tough to pick out all of the possibilities and shorthands... The program is going to have difficulty handling inconsistent source data. Don't let me stop you from trying though... "Jim Berglund" wrote: Has anyone ever created something that would grab data and sort it into various columns to create a file which could be imported into a mailing program like ACT or Outlook? For Example: I have a database with several entries similar to the following two examples: AND Products BV Scheepmakersstraat 5 3011 VH Rotterdam ZH The Netherlands Phone: +31 10-885-1200 Fax: +31 10-885-1300 E-mail: www.and.com Appian Logistics Software, Inc. 10317 Greenbriar Place Suite 100 Oklahoma City, OK 73159 USA Phone: 800-893-1250 E-mail: www.appianlogistics.com I've been able to handle all the recognizable lines (the Name, in bold, the Phone, Fax, e-mail & website. But I'd like to know if anyone has figured out a way to parse out the city, state, zip & country, if & when they exist. My working code, so far... Private Sub CommandButton1_Click() Dim i, j,m,k As Integer i = 5 j = 5 m = InputBox("Enter First Data Row") k = InputBox("Enter Last Data Row") For i = m To k If Cells(i, 1).Font.Bold = True Then Cells(j, 2).Value = Cells(i, 1).Value Cells(j, 3).Value = Cells(i + 1, 1).Value Cells(j, 4).Value = Cells(i + 2, 1).Value If Left(Cells(i + 3, 1).Value, 6) < "Phone:" Then Cells(j, 5).Value = Cells(i + 3, 1).Value End If j = j + 1 Else End If Next j = 5 For i = m To k If Left(Cells(i, 1).Value, 6) = "Phone:" Then Cells(j, 6).Value = Mid(Cells(i, 1).Value, 8, 80) If Len(Cells(j, 6)) 12 Then Cells(j, 6).Font.Bold = True End If j = j + 1 End If Next j = 5 For i = m To k If Left(Cells(i, 1).Value, 4) = "Fax:" Then Cells(j, 7).Value = Right(Cells(i, 1).Value, 12) j = j + 1 Else End If Next j = 5 For i = m To k If Left(Cells(i, 1).Value, 4) = "E-ma" Then Cells(j, 8).Value = Mid(Cells(i, 1).Value, 9, 99) Cells(j, 8).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="mailto:" + Cells(j, 8).Value, TextToDisplay:=Cells(j, 8).Value j = j + 1 Else End If Next j = 5 For i = m To k If Left(Cells(i, 1).Value, 3) = "www" Then Cells(j, 9).Value = Cells(i, 1).Value Cells(j, 9).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="http://" + Cells(i, 9).Value, TextToDisplay:=Cells(j, 9).Value j = j + 1 Else End If Next End Sub Many Thanks, Jim Berglund 403-217-0768 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
I need to import my Excel Mailing list into mailing label format. | Excel Discussion (Misc queries) | |||
I need to import my Excel Mailing list into mailing label format. | Excel Discussion (Misc queries) | |||
Transpose list of address into rows for mailing list | Excel Discussion (Misc queries) | |||
Need help with mailing list | Excel Discussion (Misc queries) | |||
Mailing List | New Users to Excel |