VBA

A

Alberto Brivio

Dear All,

as you can see, this is an instruction to save a .CSV file from an excel
file, but this conversion keep 2 decimal places only, so my question is how
can I get 4 decimal places?

instruction is

If iUno <> 0 And iDue <> 0 Then
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open sNomeFile, 0, True
sNomeFile = Replace(UCase(sNomeFile), "PRICES", "PricesNew")
sNomeFile = Replace(UCase(sNomeFile), ".XLS", ".csv")
objExcel.ActiveWorkbook.SaveAs sNomeFile, xlTextMSDOS, False
(***)
objExcel.Close
objExcel = Nothing
End If


Regards

Alberto Brivio
 
J

Joel

Convert each number to text before making the sheet CSV

Cell = Format(Cell.Value, "@")


If iUno <> 0 And iDue <> 0 Then
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open sNomeFile, 0, True
sNomeFile = Replace(UCase(sNomeFile), "PRICES", "PricesNew")
sNomeFile = Replace(UCase(sNomeFile), ".XLS", ".csv")

With objExcel.ActiveWorkbook.ActiveSheet
Set LastCell = .Cells _
.SpecialCells(xlCellTypeLastCell)
Set ShtRange = .Range("A1", LastCell)
End With
For Each Cell In ShtRange
If IsNumeric(Cell) Then
Cell = Format(Cell.Value, "@")
End If
Next Cell
objExcel.ActiveWorkbook.SaveAs sNomeFile, xlTextMSDOS, False

objExcel.Close
objExcel = Nothing
End If
 
D

Dave Peterson

I ran a skinnied down version of your macro in xl2003 and it kept lots more than
2 digits.

Do you have a number format applied to the data (in excel)?

Are the last 2 decimal places 0?

Are you checking the output by opening the CSV file in Notepad?

If you're opening in excel, try widening the columns after you open the .csv
file.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top