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ù utili
  1. Anonimo
    2023-04-06T12:28:58+00:00

    Ciao ho provato ma nulla...............! Aprendo excell e premendo ALT+F11 non fa' nulla....

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-04-06T11:28:11+00:00

    Ciao Ivan,

    Grazie mille, provo appena in ufficio e spero funzioni.

    Se mi risolvi il problema ti devo 13 cene!

    Eseguendo la mia procedura su un file di prova e poi aprendolo con Blocco Note ottengo:

    Se hai periodicamente l'esigenza di convertire file diversi, puoi salvare la procedura nel tuo file Personal.xlsb. La procedura agirà quindi sul foglio attivo.

      ****      [**Creare e salvare tutte le macro personali in una singola cartella di lavoro**](https://support.microsoft.com/it-it/office/creare-e-salvare-tutte-le-macro-personali-in-una-singola-cartella-di-lavoro-66c97ab3-11c2-44db-b021-ae005a9bc790 "https://support.microsoft.com/it-it/office/creare-e-salvare-tutte-le-macro-personali-in-una-singola-cartella-di-lavoro-66c97ab3-11c2-44db-b021-ae005a9bc790")
    

    Se preferisci convertire i file in file di testo piuttosto che in file CSV, sostituisci il codice con la seguente versione:

    '========>>

    Option Explicit

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

    Public Sub ConvertireSeparatorePerTXT()

    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 
    
            While Right(sStr, 1) = sSeparatoreVoluto 
    
                sStr = Left(sStr, Len(sStr) - 1) 
    
            Wend 
    
            Print #1, sStr 
    
        Next 
    
        Close #1 
    
    End If 
    

    End Sub

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

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2023-04-06T11:02:53+00:00

    Grazie mille, provo appena in ufficio e spero funzioni.

    Se mi risolvi il problema ti devo 13 cene!

    La risposta è stata utile?

    0 commenti Nessun commento