Consulting

Results 1 to 4 of 4

Thread: Open CSV UTF-8 files (no acces to editing BOM)

  1. #1

    Open CSV UTF-8 files (no acces to editing BOM)

    Hi,

    I am furious that this has to be so difficult.

    I am using Office 2016 x64 on Windows 7

    I have CSV files that can potentially have multiple language characters in them. They are encoded in UTF-8 and separated by commas.

    I want to be able to double click on them to open them nicely and start working (like OpenOffice does).

    Description

    • I got around Excel not understanding commas by changing my whole Windows default separators (which is dumb, but it worked).
    • I though I could get around Excel not understanding the UTF-8 by changing the registry . However, that only changes the Default option of the dropdown called "File origin" in the Import method (Data Tab > Get External Data > From Text). While this is a useful step, it still needs me to go through the menu browsing instead of just double clicking the CSV file in the file explorer.
    • I then said frack it and I resorted to create a Macro for which I would put a custom button on the ribbon. I wrote the following macro, making sure to put "Origin:=65001" BUT IT STILL DOES NOT WORK.

      Sub Open_CSV_UTF_8()
      
         filetoopen = Application.GetOpenFilename("Text Files (*.txt;*.csv), *.txt;*.csv")
         If filetoopen = Null Or filetoopen = Empty Then Exit Sub
      
         Workbooks.OpenText Filename:=filetoopen, _
         Origin:=65001, DataType:=xlDelimited, Comma:=True
      
      End Sub
      When I click my custom button, a dialog box appears to select the CSV file I want to open. I select it and voila it gets opened (alas, to a new file, insted of imported to the current blank workbook) but the characters are still scrambled. Obviously Workbooks.OpenText does not work.
    • I noticed that maybe I could create a macro that would import the data (the the current document) by adding a connection to the file and creating a table from that connection, however,
      I do not know how to create a macro that would open a dialog box for me to select the file.



    Questions

    1. Is there a way to change the Registry for the opening (and not the import dialog) of CSV files?
    2. If not, is there a way to make my first Workbooks.OpenText macro to work as expected (Origin:=65001)?
    3. If not, could yo help figure out a VBA macro for making a connection and open up a dialog box to browse for the CSV file?


    Thanks a bunch!!

    ETA: question originally posted at mrexcel.com
    Last edited by garbanzhell; 10-23-2017 at 03:35 AM.

  2. #2
    As I also posted at microsoft techcommunity: check out http://jkp-ads.com/articles/importtext.asp
    Regards,

    Jan Karel Pieterse
    Excel MVP jkp-ads.com

  3. #3
    Cross posting is wrong and I repent.

  4. #4
    VBAX Guru mancubus's Avatar
    Joined
    Dec 2010
    Location
    "Where I lay my head is home" :D
    Posts
    2,644
    Quote Originally Posted by garbanzhell View Post
    Cross posting is wrong
    no, cross posting is not wrong as long as you provide the links to the threads in the other forums / communities.
    PLS DO NOT PM; OPEN A THREAD INSTEAD!!!

    1) Posting Code
    [CODE]PasteYourCodeHere[/CODE]
    (or paste your code, select it, click # button)

    2) Uploading File(s)
    Go Advanced / Attachments - Manage Attachments / Add Files / Select Files / Select the file(s) (multiple files can be selected while holding Ctrl key) / Upload Files / Done
    Replace company specific / sensitive / confidential data. Include so many rows and sheets etc in the uploaded workbook to enable the helpers visualize the data and table structure. Helpers do not need the entire workbook.

    3) Testing the Codes
    always back up your files before testing the codes.

    4) Marking the Thread as Solved
    from Thread Tools (on the top right corner, above the first message)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •