Macro Delimitatori



  • Macro Delimitatori
    di antonio (utente non iscritto) data: 29/03/2016 19:56:05

    Salve,
    cerco di passare con una macro un file da excel a csv, solo che quando mi salva in automatico con la macro il delimitatore che utilizza è sempre la "," (virgola), io invece vorrei che utilizzasse "|". Ho provato ad impostare il delimitatore da panello di controllo > area geografica > impostazioni avanzate > delimitatore "|", ma accade, che se faccio i vari passaggi senza la macro il file csv esce corretto (quindi con delimitatore "|"), mentre se faccio i vari passaggi con la macro (compreso il salvataggio del file in csv) il file esce con delimitatore ",".

    Come posso impostare la macro indicandogli che deve utilizzare come delimitatore "|" e NON ","

    Di seguito vi indico la macro che utilizzo.

    Grazie ancora per l'aiuto.


     
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    
    '
        ChDir "C:UsersdennyDesktop"
        ActiveWorkbook.SaveAs Filename:="C:UsersdennyDesktop191.csv", FileFormat _
            :=xlCSV, CreateBackup:=False
    End Sub



  • di patel data: 29/03/2016 20:05:39

    non puoi farlo con saveas, devi aprire un file di testo e sciverci dentro le varie stringhe con i separatori





  • di antonio (utente non iscritto) data: 29/03/2016 20:09:06

    Purtroppo non sono molto esperto in questo campo, non so cosa sia saveas



  • di alfrimpa data: 29/03/2016 20:17:05

    Ciao Antonio

    Il SaveAs è il "Salva con nome".

    Alfredo





  • di antonio (utente non iscritto) data: 29/03/2016 20:23:59

    Con la macro come si può notare imposto "salva con nome" ma non va



  • di Antonio (utente non iscritto) data: 29/03/2016 20:31:15

    Si potrebbe modificare la macro che ho riportato, impostando come delimitatore "|"?




  • di patel data: 29/03/2016 20:34:34

    come già detto non puoi farlo in modo semplice, però si può fare, ma devi allegare un file di esempio con i dati ed il risultato che vuoi ottenere





  • di Antonio (utente non iscritto) data: 29/03/2016 20:41:55

    ho allegato il file che vorrei



  • di patel data: 30/03/2016 06:39:23

    prova questa
     
    Sub EsportaInTesto()
    Set Zona = Worksheets(1).UsedRange
    Righe = Zona.Rows.Count
    colonne = Zona.Columns.Count
    DestFile = "F:Downloadprova.csv" ' <<<<<<< percorso da modificare
    FileNum = FreeFile()
    Open DestFile For Output As #FileNum
    For RowCount = 1 To Righe
      For ColumnCount = 1 To colonne
        Print #FileNum, "" & Zona.Cells(RowCount, ColumnCount).Text & "";
        If ColumnCount = Zona.Columns.Count Then
           Print #FileNum,
        Else
           Print #FileNum, "|";
        End If
      Next ColumnCount
    Next RowCount
    Close #FileNum
    End Sub






  • di antonio (utente non iscritto) data: 30/03/2016 10:25:19

    ho provato la macro ma nel momento in cui lo eseguo mi esce tale errore di compilazione:

    "errore di run time "52"
    nome o numero di file non valido


    sottolinea la stringa: Open DestFile For Output As #FileNum

    premetto che ho solo modificato la destinazione come mi hai indicato.





  • di patel data: 30/03/2016 10:53:57

    hai messo un percorso non valido, io l'ho testata e funziona





  • di antonio (utente non iscritto) data: 30/03/2016 11:26:14

    si è perfetto. grazie mille...

    solo un'ultima cosa esisterebbe una macro che mi cancella o modifica i caratteri speciali come quelli che sono contenuti nel file?


    Grazie ancora per l'aiuto



  • di patel data: 30/03/2016 12:39:58

    sei troppo vago nelle domande, inoltre una macro non esiste, deve essere scritta in funzione dell'obiettivo da perseguire