Condividi:        

Unire file CSV senza fine linea

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Unire file CSV senza fine linea

Postdi buni75 » 14/10/16 06:01

buongiorno,

devo unire molti file csv con separatore ; dove non è presente il fine linea.
con il comando dos "copy *.csv nomefile.csv" il file che ne deriva è sempre di una sola linea, mentre se aggiungo a mano il fine linea su ogni file csv allora funziona.
c'è modo con una macro o con un comando di dos di unire questi file?

un saluto, Francesco
buni75
Utente Junior
 
Post: 41
Iscritto il: 24/08/11 20:20

Sponsor
 

Re: Unire file CSV senza fine linea

Postdi Anthony47 » 14/10/16 12:35

Allega per favore 4-5 file da unire.
Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487
Avatar utente
Anthony47
Moderatore
 
Post: 19183
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Unire file CSV senza fine linea

Postdi buni75 » 14/10/16 14:29

ecco i file

https://fil.email/yi1PY

Grazie, Francesco
buni75
Utente Junior
 
Post: 41
Iscritto il: 24/08/11 20:20

Re: Unire file CSV senza fine linea

Postdi Anthony47 » 17/10/16 02:26

Vedi se con questa macro ottieni il risultato voluto:
Codice: Seleziona tutto
Sub buniQueue()
Dim myF As String, myDir As String, newText As String
'
myDir = "C:\PERCORSO\"        '<<< Il path contenente i file csv con \ finale
myF = Dir(myDir & "*.csv")
Close #1: Close #2
Open myDir & "OutCsv.csv" For Output As #1
On Error GoTo gErr
Do
DoEvents
If myF = "" Then Exit Do
Open myDir & myF For Input As #2
    Line Input #2, friga
    newText = newText & friga & vbCrLf
goOn:
    Close #2
    myF = Dir
Loop
newText = Left(newText, Len(newText) - 1)
Print #1, newText
Close #1
Exit Sub
gErr:
If Err = 55 Then
    Err.Clear: Resume goOn
End If
End Sub

Viene creato un fiel OutCsv.csv, nella stessa directory dove si trovano i file originali.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19183
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Unire file CSV senza fine linea

Postdi buni75 » 17/10/16 13:25

Perfetto!!!

grazie Anthony, see you soon
buni75
Utente Junior
 
Post: 41
Iscritto il: 24/08/11 20:20

Re: Unire file CSV senza fine linea

Postdi buni75 » 22/10/16 08:16

buongiorno Anthony,

ho provato modificando il codice ma senza successo : ora ho necessità di aggiungere, prima del finelinea, una S maiuscola per ogni riga.
ho provato anche registrando macro ma non ci riesco.
c'è un comando specifico che potrei inserire nel codice?

grazie, Buni
buni75
Utente Junior
 
Post: 41
Iscritto il: 24/08/11 20:20

Re: Unire file CSV senza fine linea

Postdi patel » 22/10/16 11:49

i file non sono più disponibili, riallegali
intanto prova questa
Codice: Seleziona tutto
Sub buniQueue()
Dim myF As String, myDir As String, newText As String
'
myDir = "C:\PERCORSO\"        '<<< Il path contenente i file csv con \ finale
myF = Dir(myDir & "*.csv")
Close #1: Close #2
Open myDir & "OutCsv.csv" For Output As #1
On Error GoTo gErr
Do
DoEvents
If myF = "" Then Exit Do
Open myDir & myF For Input As #2
    Line Input #2, friga
    newText = newText & friga & "S" & vbCrLf  ' <<<< linea modificata
goOn:
    Close #2
    myF = Dir
Loop
newText = Left(newText, Len(newText) - 1)
Print #1, newText
Close #1
Exit Sub
gErr:
If Err = 55 Then
    Err.Clear: Resume goOn
End If
End Sub
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: Unire file CSV senza fine linea

Postdi buni75 » 22/10/16 13:24

è perfetto, grazie.

se volessi inserire -- FName = Format(Date, "yyyy-mm-dd") & ".Ctr_" & Format(Time, "HHmm") -- a che punto dovrei metterlo?

grazie, Buni
buni75
Utente Junior
 
Post: 41
Iscritto il: 24/08/11 20:20

Re: Unire file CSV senza fine linea

Postdi patel » 22/10/16 15:47

non hai detto a cosa ti serve, quindi vado a intuito
Codice: Seleziona tutto
Sub buniQueue()
Dim myF As String, myDir As String, newText As String
'
myDir = "C:\PERCORSO\"        '<<< Il path contenente i file csv con \ finale
myF = Dir(myDir & "*.csv")
Close #1: Close #2
FName = Format(Date, "yyyy-mm-dd") & ".Ctr_" & Format(Time, "HHmm") & ".csv" '
Open myDir & FName For Output As #1
On Error GoTo gErr


per favore allega i file, vorrei collaudare la macro di Anthony
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: Unire file CSV senza fine linea

Postdi buni75 » 22/10/16 16:29

https://fil.email/2136BA

la necessità è di dare una prima parte di nome file standard e il resto con data, ora e .csv.
ho modificato con quanto mi hai scritto e ora ho ottenuto quanto sopra.

piuttosto non riesco a inserire la funzione di OPEN per aprire appena eseguita la macro.

ciao,
Buni
buni75
Utente Junior
 
Post: 41
Iscritto il: 24/08/11 20:20

Re: Unire file CSV senza fine linea

Postdi patel » 22/10/16 18:53

non ho capito "ottenuto quanto sopra"
e neppure "non riesco a inserire la funzione di OPEN per aprire appena eseguita la macro"
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03


Torna a Applicazioni Office Windows


Topic correlati a "Unire file CSV senza fine linea":


Chi c’è in linea

Visitano il forum: Nessuno e 43 ospiti