Solved

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

Posted on 2013-06-14
6
12,446 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
[X]
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
6 Comments
 
LVL 52

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 31

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 31

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
PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

 
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 31

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

[Webinar] Learn How Hackers Steal Your Credentials

Do You Know How Hackers Steal Your Credentials? Join us and Skyport Systems to learn how hackers steal your credentials and why Active Directory must be secure to stop them. Thursday, July 13, 2017 10:00 A.M. PDT

Question has a verified solution.

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

Introduction This Article briefly covers methods of calculating the NPV and IRR variants in Excel as well as the limitations in calculating and interpreting IRR results. Paraphrasing Richard Shockley, author of my favourite finance reference tex…
If you need to forecast numbers -- typically for finance -- the Windows and Mac versions of Excel 2016 have a basket of tools to get the job done.
This Micro Tutorial demonstrates how to create Excel charts: column, area, line, bar, and scatter charts. Formatting tips are provided as well.
This Micro Tutorial will demonstrate on a Mac how to change the sort order for chart legend values and decrpyt the intimidating chart menu.

630 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