Function Application.GetOpenFilename

Solved
mamined Posted messages 37 Status Member -  
mamined Posted messages 37 Status Member -
Hello group,

I built the code below while watching videos on YouTube (yes, I'm not skilled..)
So the code works and everything is fine with one exception.
I open a CSV file and it opens in Excel, which is a problem because the data is combined together and separated by a "|" separator but also has ";" and ":" so it would be necessary for my code not to open it with Excel but with a text editor like WordPad or Notepad.

How to modify my code so that when it indicates: Set MonClasseur = Application.Workbooks.Open(ListFile) it does so with one of the 2 types of files mentioned above?

Thank you in advance for your help

Option Explicit Sub AutoImportDataTXT() 'variable declarations Dim ListFile As Variant Dim MonClasseur As Variant 'disable alerts Application.ScreenUpdating = False Application.CutCopyMode = False 'filter to see only the type of file to select ListFile = Application.GetOpenFilename(Title:="Select data and import data", fileFilter:="CSV Files(*.csv*),*xls*", ButtonText:="Click") 'handle the case of the cancel button click in case of error If ListFile <> False Then 'indicate the selected file Set MonClasseur = Application.Workbooks.Open(ListFile) 'copy data MonClasseur.Sheets(1).Range("A1").CurrentRegion.Copy 'paste data ThisWorkbook.Sheets("sample").Range("A1").PasteSpecial xlPasteValues 'close source workbook MonClasseur.Close End If End Sub

3 answers

  1. yg_be Posted messages 23437 Registration date   Status Contributor Last intervention   Ambassador 1 588
     
    Hello, if you don't open it in Excel, you won't be able to use its data from your program.
    0
    1. mamined Posted messages 37 Status Member
       
      Hello yg_be

      thank you for your reply but I do not understand why I cannot use the data since I do it manually and it works very well.
      So in my opinion, we should be able to automate it.

      Process:

      Select csv file
      right click
      open with
      Select notepad or other text editor
      press ctrl A + ctrl C
      go to my Excel sheet (where I have my code in the right sheet in A1)
      ctrl V

      so if it works like that, we should be able to automate it in my opinion.
      0
      1. yg_be Posted messages 23437 Registration date   Status Contributor Last intervention   1 588 > mamined Posted messages 37 Status Member
         
        Have you ever tried to do this process in VBA?
        I suggest that you only use Excel instead, maybe by working a little more on it to transform the data.
        0
      2. mamined Posted messages 37 Status Member > yg_be Posted messages 23437 Registration date   Status Contributor Last intervention  
         
        Hello,

        actually, as I said, I can't with Excel. It's not working, the reason is simple. If I open my csv in Excel, I have split columns while I shouldn't have them split. Look at the 2 images and you'll understand the problem.
        0
      3. yg_be Posted messages 23437 Registration date   Status Contributor Last intervention   1 588 > mamined Posted messages 37 Status Member
         
        You couldn't do it with Excel, it doesn't mean it's not possible.
        This might help you: https://docs.microsoft.com/fr-ch/office/vba/api/excel.workbooks.open
        Otherwise, you can quite easily manipulate and transform data in VBA.
        0