Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Outlook / Programming VBA / September 2006

Tip: Looking for answers? Try searching our database.

CSV Import Issue (Newbie)

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
John V - 28 Sep 2006 22:43 GMT
The routine below is used to import the contents of several files and paste
those contents into a worksheet. All worked fine until the source files
changed from tab delimited to CSV files (nothing I can do about the change).
I changed two lines of code to recognize .csv file instead of a .txt file,
then imported.

The resulting destination worksheet has unexpected results. 1) All text
cells are now preceeded by a single quote. 2) Any commas embedded in a source
cell cause the text to be parsed into two or more destination cells, and 3)
non printing characters remain in the destination cells. None of these
phenomena appear to occur when I simply open the csv file in Excel, but it is
the copy/paste routine below that seems to be the culprit (I think).

Any help much appreciated.
John

Code starts here:

Sub Firstattempt()
Dim rng, rng1 As Range
Dim FNames(1 To 100, 1 To 2) As Variant
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim FN As String ' For File Name
   Dim ThisRow As Long
   Dim MyFileLocation As String
   MyFileLocation = ThisWorkbook.Path & "\*.csv"
    ' Changed from Tab to Comma delimited 9/06
    FN = Dir(MyFileLocation)
   FNum = 0
Do Until FN = ""
   FNum = FNum + 1
       Workbooks.OpenText Filename:=ThisWorkbook.Path & "\" & FN, _
       DataType:=xlDelimited, Comma:=True
   ' Changed from Tab to Comma delimited 9/06
   ActiveCell.CurrentRegion.Copy

   Workbooks(FN).Close SaveChanges:=False
        Worksheets("Raw Data").Activate
        Set rng = Worksheets("Raw Data").Cells(Rows.Count, 1).End(xlUp)(2)
   Set rng1 = rng.Offset(1, 0)

If FNum = 1 Then
Set rng = Range("A1")
Set rng1 = Range("a2")
End If
   
   'Range("myRange").Columns(1).Value = 0
   rng.Activate
   ActiveCell.PasteSpecial
   If FNum <> 1 Then
   rng.Activate
   ActiveCell.EntireRow.Delete
   End If
   rng1.Activate
   FNames(FNum, 1) = Left(FN, Len(FN) - 4)
   Do While True
       If ActiveCell = "" Then Exit Do
       ActiveCell.Value = FNames(FNum, 1)
       ActiveCell.Offset(1, 0).Activate
       FNames(FNum, 2) = FNames(FNum, 2) + 1
   Loop
   
   FN = Dir
Loop
Worksheets("Files Imported").Activate
Range("a1:b" & FNum).Value = FNames
Application.ScreenUpdating = True

End Sub
John V - 28 Sep 2006 23:21 GMT
Phenomenon 3) above was in the source document already, but other results are
confirmed.
Michael Bauer [MVP - Outlook] - 29 Sep 2006 06:44 GMT
Am Thu, 28 Sep 2006 14:43:02 -0700 schrieb John V:

John, your chance for a good answer is better in an Excel group.

Signature

Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
 -- www.VBOffice.net --

> The routine below is used to import the contents of several files and paste
> those contents into a worksheet. All worked fine until the source files
[quoted text clipped - 66 lines]
>
> End Sub
John V - 29 Sep 2006 13:02 GMT
LOL! My bad. Thanks for being so kind. One might have said, "Hey goober!
You're in the wrong place! No wonder your code doesn't work."

> Am Thu, 28 Sep 2006 14:43:02 -0700 schrieb John V:
>
[quoted text clipped - 76 lines]
> >
> > End Sub
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.