Solved

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

Posted on 2013-06-14
6
10,055 Views
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!
0
Comment
Question by:Dreamboat
6 Comments
 
LVL 49

Assisted Solution

by:Rgonzo1971
Rgonzo1971 earned 200 total points
ID: 39247936
Hi,

Try

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

0
 
LVL 29

Accepted Solution

by:
gowflow earned 300 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
    ActiveWorkbook.Save
    '---> Now create a CSV of the active sheet
    ActiveWorkbook.SaveAs Filename:=sFileName, FileFormat:=xlCSV
Application.DisplayAlerts = True

ActiveWorkbook.Close False
Application.Quit
End Sub

Open in new window


Then place the below instruction in ThisWorkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Quit
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.

gowflow
0
 
LVL 29

Expert Comment

by:gowflow
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.

Rgds/gowflow
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 22

Author Closing Comment

by:Dreamboat
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!
0
 
LVL 29

Expert Comment

by:gowflow
ID: 39260295
good and glad we could help
gowflow
0
 

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?
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Introduction This Article is a follow-up to my Mappit! Addin Article (http://www.experts-exchange.com/A_2613.html), it was inspired by an email posting I made to EUSPRIG (http://www.eusprig.org/index.htm), I will briefly cover: 1) An overvie…
Approximate matching with VLOOKUP and MATCH seems to me to be a greatly under-used technique, and one which is vital for getting good performance out of large lookups. Until recently I would always have advised using an exact match for simplicity an…
The viewer will learn how to create a normally distributed random variable in Excel, use a normal distribution to simulate the return on an investment over a period of years, Create a Monte Carlo simulation using a normal random variable, and calcul…
This Micro Tutorial will demonstrate on a Mac how to change the sort order for chart legend values and decrpyt the intimidating chart menu.

863 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

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now