Thread: VBA
View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
joel joel is offline
external usenet poster
 
Posts: 9,101
Default VBA

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


"Alberto Brivio" wrote:

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