Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17


VBA: Save as CSV, no prompts, close file. Excel 2007

Posted on 2013-06-14
Medium Priority
Last Modified: 2016-12-08
I have scoured the web and can't find definitive code for this. They all have variables I don't know how to alter.

I simply want to save the XLS file to a CSV file right in the same folder, with the same name, and then close it. I don't want to be prompted about anything. I even know how to do that part, but not how to just save it. I'm not going to paste partial code because I don't know of any that is absolutely correct.

I don't need any error handling or anything. It's just for my personal use.

Thanks so much!
Question by:Dreamboat
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 52

Assisted Solution

Rgonzo1971 earned 800 total points
ID: 39247936


Sub DoIt()
FilenameS = Left(ActiveWorkbook.Name, InStr(1, ActiveWorkbook.Name, ".") - 1) '& ".csv"
Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=FilenameS, FileFormat:=xlCSV, ConflictResolution:=xlLocalSessionChanges
Application.DisplayAlerts = True
ActiveWorkbook.Close False
End Sub

Open in new window

LVL 31

Accepted Solution

gowflow earned 1200 total points
ID: 39248070
Well for this you have to do 2 things
1) You have to call the below sub SaveCSVnExit that you can put in a module
2) you should also add an instruction in your ThisWorkbook under Workbook Before Close event

as follows:

Copy the below code and place it in a module

Sub SaveCSVnExit()

Dim sFileName As String

sFileName = ActiveWorkbook.Path & "\" & Left(ActiveWorkbook.Name, InStr(1, ActiveWorkbook.Name, ".") - 1) & ".csv"

Application.DisplayAlerts = False
    '---> Save Current workbook just in case latest additions not saved
    '---> Now create a CSV of the active sheet
    ActiveWorkbook.SaveAs Filename:=sFileName, FileFormat:=xlCSV
Application.DisplayAlerts = True

ActiveWorkbook.Close False
End Sub

Open in new window

Then place the below instruction in ThisWorkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
End Sub

Open in new window

Save and Exit your workbook then start it again and when you are ready just activate the macro SaveCSVnExit and check the results.

LVL 31

Expert Comment

ID: 39248187
I just clicked on your profile and noticed your just about to reach the Genius level which I congratulate you in advance and most of all appreciate you humbleness from the way you asked you question which I salute and again congratulate you for.

Please do not hesitate to ask me for any help you may need in the Excel/VBA/VB6 I will be glad to assist.

I had personally stumbled on this issue not for saving but mainly to get rid of the Excel instance that was opened after the workbook was closed and could not get it to work and it took me lot of research and trial/errors to finally got it that you need to get rid of the application just about the workbook get finally kicked out.

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

LVL 22

Author Closing Comment

ID: 39259784
I have FINALLY got to this, so sorry! Code works GREAT. Not sure about the workbook event because it's always a different workbook that comes from a customer, and we don't want to distribute macro files to customers. Anyway... love it.

As for Genius, I don't really answer questions here anymore, though I did so lots and lots of hours per day a long time ago. :) Thanks!
LVL 31

Expert Comment

ID: 39260295
good and glad we could help

Expert Comment

by:Martin Gregar
ID: 41919165
Hello, I have some problem. I want to save xlsx to csv but I want ";" not "," in csv file. And I want to save csv in another folder. Could you help me with this? I am absolutely amateur in this problem. It is possible that VBA code will be always in xlsx file?

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Excel can be a tricky bit of software to get your head around. Whilst you’ll be able to eventually get to grips with the basic understanding of how to get by, there are a few Excel tips that not everybody will even know about let alone know how to d…
After seeing numerous questions for Dynamic Data Validation I notice that most have used Visual Basic to solve the problem. This suggestion is purely formula based and can be used in multiple rows.
The viewer will learn how to use a discrete random variable to simulate the return on an investment over a period of years, create a Monte Carlo simulation using the discrete random variable, and create a graph to represent the possible returns over…
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…

715 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question