Ciao , e' possibile salvare un file excell in TXT , ma mettere il ";" come separatore di dati? in modo da non fare mano , mano tutti i file?

Anonimo
2023-04-06T08:47:03+00:00

Ciao , e' possibile salvare un file excell in TXT , ma mettere il ";" come separatore di dati? in modo da non fare mano , mano tutti i file?

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2023-04-07T07:57:07+00:00

Ciao Ivan,

Ok funziona e davvero ti ringrazio tantissimo , devo solo chiederti di rimandarmi l'excell dell'ultima modifica che hai fatto perche' non mi dava la possibilita' di scaricarla , ho copiato il comando ma devo aver sbagliato qualcosa io ed anche se funziona ogni volta che apro e chiudo il file mi dice che non trova la macro ....... comunque errore mio sicuramente se mi mandi di nuovo il file con l'ultima macro passiamo a 74 cene che ti devo.......grazieeeeeeeeeeeeeee!

Prova: Ivan2_20230406.xlsm

===

Regards,

Norman

Immagine

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2023-04-06T21:09:58+00:00

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

'<<=========

 [![Immagine](https://learn-attachment.microsoft.com/api/attachments/c874fcc4-e3a2-4422-997c-e5757ae69abd?platform=QnA

Ho aggiornato il mio file di prova Ivan2_20230406.xlsm

===

Regards,

Norman

Immagine

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

50 risposte aggiuntive

Ordina per: Più recente
  1. Anonimo
    2023-04-06T19:52:52+00:00

    Ciao Ivan,

    Ok come questo, ma mancano gli zero… e dopo è perfetto…

    Punto;1Z;Z;-2,184;-2;-0,184;-0,5;0,500;;

    Il -2 dovrebbe essere-2,000 ( secondo valore ) ed il -0,5 dovrebbe essere -0,500 ( penultimo valore) .

    Non credo che questo sia possibile.

    Il valore -2,000 nel file Excel è, in realtà, il valore -2 formattato per visualizzare il separatore decimale, ossia la virgola, e tre zeri finali. Un file di testo non può visualizzare questa o qualsiasi altra formattazione.

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-04-06T19:43:23+00:00

    Ok come questo, ma mancano gli zero… e dopo è perfetto…

    Punto;1Z;Z;-2,184;-2;-0,184;-0,5;0,500;;

    Il -2 dovrebbe essere-2,000 ( secondo valore ) ed il -0,5 dovrebbe essere -0,500 ( penultimo valore) .

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2023-04-06T19:29:33+00:00

    Ciao Ivan,

    Non ci sono comunque i punti e virgola , i punti e virgola devono essere messi sia come separatore di testo ( Tipo elem.;Nome elem.;Quota;Misurato; ecc ecc)

    Sia come separatore di dati ( Punto;1Z;Z;-2.184;-2.000; ecc ecc ) e come il primo file che mi hai girato tutto il testo spostato a sx , il primo file andava bene aveva solo gli zero che sì cancellavano nel TXT e le virgolette che non dovevano esserci.

    Ti ho girato un file Excel ed un file TXT per farti capire meglio come è in Excel e come dovrebbe diventare.Ed anche perché usando il mio Excel avevi già i dati almeno ( non è molto ma….. )

    Credo che il problema sia dovuto ad un refuso!

    La dichiarazione

     Const sSeparatoreVoluto As String = **":"**
    

    Avrebbe dovuto essere:

      Const sSeparatoreVoluto As String = **";"**
    

    Per la completezza:

    '========>>

    Option Explicit

    '--------->>

    Public Sub ConvertireSeparatorePerCSV()

    Dim srcRng As Range 
    
    Dim rRow As Range 
    
    Dim rCell As Range 
    
    Dim sStr As String 
    
    Dim FName As Variant 
    
    Const sSeparatoreVoluto As String = ";" 
    
    FName = Application.GetSaveAsFilename("", "TXT File (\*.txt), \*.txt") 
    
    If FName &lt;&gt; False Then 
    
        If Selection.Cells.Count &gt; 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.Value & """" & 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

    '<<=========

         [![Immagine](https://learn-attachment.microsoft.com/api/attachments/9fc8ffa7-193b-4b22-8b9d-376ba060939c?platform=QnA
    

    Ho aggiornato il mio file di prova Ivan2_20230406.xlsm

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento