Ciao Ivan,
Come mai però nel txt l’ultimo dato è giusto ovvero 0,500 ma il penultimo no ed è -0,5 , in un file precedente tu hai sostituito la virgola dei decimali con un punto, ovvero Punto;1Z;Z;-2.184;-2.000;-0.184;-0.500;0.500;; e così a me andava perfettamente, il separatore dei decimali per me va’ bene anche il punto.
Per visualizzare anche i zero finali, nel codice bisogna convertire i valori in valori di testo. Quindi, modificando una riga dell'ultimo codice, prova:
'========>>
Option Explicit
'--------->>
Public Sub ConvertireSeparatorePerCSV()
Dim srcRng As Range
Dim rRow As Range
Dim rCell As Range
Dim sStr As String, sSeperatore\_Decimale As String
Dim FName As Variant
Const sSeparatoreVoluto As String = ";"
FName = Application.GetSaveAsFilename("", "TXT File (\*.txt), \*.txt")
If FName <> False Then
If Selection.Cells.Count > 1 Then
Set srcRng = Selection
Else
Set srcRng = ActiveSheet.UsedRange
End If
Open FName For Output As #1
For Each rRow In srcRng.Rows
sStr = ""
For Each rCell In rRow.Cells
sStr = sStr & """" & rCell.**Text** & """" & sSeparatoreVoluto
Next rCell
While Right(sStr, 1) = sSeparatoreVoluto
sStr = Left(sStr, Len(sStr) - 1)
Wend
sStr = Replace(sStr, """", "")
Print #1, sStr
Next
Close #1
End If
Call MsgBox(Prompt:="Fatto", \_
Buttons:=vbInformation, \_
Title:="REPORT")
End Sub
'<<=========
[