Condividi:        

Estrazione dati file txt in excel

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

Estrazione dati file txt in excel

Postdi danibi60 » 16/05/19 10:11

Buongiorno a tutti, come state?

E' da un po' che non Vi scrivo e in tutta onestà, non so voi, ma la nostalgia è stata parecchia! ;-)

Ma veniamo alla mia richiesta d'aiuto:

Ricevo da un nostro fornitore questo file in txt (estrazione da gestionale) e che vorrei poter analizzare meglio estraendolo in excel, al fine di poter verificare i dati in esso inseriti.

I campi che mi servirebbe incolonnare sono:

N° spedizione (inizia per L4 e poi c'è un numero di 9/10 cifre)
Data spedizione
Peso
Lunghezza
Larghezza
Altezza

Pensate sia possibile??

Grazie infinite,

Danibi

https://www.dropbox.com/s/7i9xvougga19y ... E.txt?dl=0
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo

Sponsor
 

Re: Estrazione dati file txt in excel

Postdi Anthony47 » 16/05/19 14:33

Bentornat!

Quello che hai ricevuto e' uin file in formato "Stampa", e non e' vero che il primo campo cominci sempre con L4. Io ci trovo:
Codice: Seleziona tutto
L4  590151436 0 E4   Collo: 1
AB  190079559 0 L4   Collo: 1
AG  190025775 0 L4   Collo: 1
AK  190040583 0 L4   Collo: 1
...
L5  590066039 0 L4   Collo: 1

L8  190054805 0 L4   Collo: 1
...
WW  590177509 0 L4   Collo: 8

Ora secondo me il mittente non ha nessuna difficolta' a generare e passarti un file in formato CSV, oppure direttamente XLS (i gestionali piu' comuni lo fanno). Perche' sarebbe molto meglio che il problema venga risolto a monte piuttosto che non a valle.

Comunque, con quel formato file probabilmente puoi ottenere I tuoi dati con questa macro:
Codice: Seleziona tutto
Sub DBImport1()
Dim TArr(0 To 7), RCnt As Long, EOLMark As String, RReady As Boolean
Dim RRec As String, myNext As Long
'
Close #1
'
EOLMark = "Bilancia:"
'Scelta file:
    myFile = Application.GetOpenFilename("File di testo,*.txt")
    If myFile = "Falso" Then
        MsgBox "Nessun File Selezionato, procedura abortita"
        Exit Sub
    End If
'
Open myFile For Input As #1
Do Until (EOF(1))
    RReady = False
    RCnt = RCnt + 1
    Line Input #1, TArr(RCnt Mod 8)
    If Left(TArr(RCnt Mod 8), Len(EOLMark)) = EOLMark Then
        RRec = TArr((RCnt - 3) Mod 8) & " " & TArr((RCnt - 2) Mod 8) & " " & TArr((RCnt - 1) Mod 8) & " " _
          & TArr(RCnt Mod 8) & " "
        RReady = True
    End If
    If RReady Then
    'Compilazione record:
        myNext = Cells(Rows.Count, 1).End(xlUp).Row + 1
        lfor = "Collo:"
        Cells(myNext, 1) = Trim(Left(RRec, InStr(1, RRec, lfor, vbTextCompare) - 1))
        lfor = "Data:": lfor2 = "Ora:"
        Cells(myNext, 2) = CDate("0" & Trim(Mid(RRec, InStr(1, RRec, lfor, vbTextCompare) + Len(lfor), InStr(1, RRec, lfor2, vbTextCompare) - InStr(1, RRec, lfor, vbTextCompare) - Len(lfor))))
        lfor = "Peso:": lfor2 = "Lunghezza:"
        Cells(myNext, 3) = CLng("0" & Trim(Mid(RRec, InStr(1, RRec, lfor, vbTextCompare) + Len(lfor), InStr(1, RRec, lfor2, vbTextCompare) - InStr(1, RRec, lfor, vbTextCompare) - Len(lfor))))
        lfor = "Lunghezza:": lfor2 = "Larghezza:"
        Cells(myNext, 4) = CLng("0" & Trim(Mid(RRec, InStr(1, RRec, lfor, vbTextCompare) + Len(lfor), InStr(1, RRec, lfor2, vbTextCompare) - InStr(1, RRec, lfor, vbTextCompare) - Len(lfor))))
        lfor = lfor2: lfor2 = "Altezza:"
        Cells(myNext, 5) = CLng("0" & Trim(Mid(RRec, InStr(1, RRec, lfor, vbTextCompare) + Len(lfor), InStr(1, RRec, lfor2, vbTextCompare) - InStr(1, RRec, lfor, vbTextCompare) - Len(lfor))))
        lfor = lfor2: lfor2 = "Barcode:"
        Cells(myNext, 6) = CLng("0" & Trim(Mid(RRec, InStr(1, RRec, lfor, vbTextCompare) + Len(lfor), InStr(1, RRec, lfor2, vbTextCompare) - InStr(1, RRec, lfor, vbTextCompare) - Len(lfor))))
    End If
    DoEvents
Loop
Close #1
MsgBox ("Completato...")
End Sub

Mettila in un modulo standard, poi attiva il foglio in cui vuoi creare la tua tabella e avvia la Sub DBImport1: ti verra' chiesto di selezionare il file txt da analizzare e poi l'elenco viene compilato accodandolo a quanto gia' eventualmente presente.

Ti suggerisco di partire da un file con un migliaio di record, in modo da verificare se quanto ottenuto e' idoneo (il file completo richiedera' parecchi minuti per essere elaborato).

Fai sapere…
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Estrazione dati file txt in excel

Postdi klingklang » 17/05/19 14:44

Voglio "sfidare" (bonariamente, s'intende!) Anthony e la sua maestosa procedura con un elaborato in Power Query (software che uso da poco ma mi sta entusiasmando oltremisura). A voi la preferenza! :)

http://www.filedropper.com/txtelaborato
Enrico
Windows 7 + Office 2016 64bit / Windows 10 + Office 365 32/64bit
Avatar utente
klingklang
Utente Junior
 
Post: 97
Iscritto il: 23/11/18 15:01
Località: San Giovanni in Persiceto

Re: Estrazione dati file txt in excel

Postdi Anthony47 » 18/05/19 23:59

Power Query e' un tool molto potente che vorrebbe trasformare Excel da uno strumento personale a tool di Business Intelligence, e l'obiettivo mi e' sempre sembrato un po' presuntuoso; prima di appendere il mouse al chiodo dovro' fare qualche prova...
In questo caso potrebbe anche servire a ridurre il tempo di elabotazione di tutto il file.

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

Re: Estrazione dati file txt in excel

Postdi danibi60 » 21/05/19 08:36

Un grazie immenso a entrambi, non solo per la disponibilità, ma per il risultato del lavoro che avete svolto.

Per Anthony, ho testato la macro e funziona alla grande, ora devo verificare il significato dei campi che non iniziano per L4 e comprendere a cosa/chi si riferiscono.

Per klingklang, non conosco Power Query ma immagino da come ne parli che sia uno strumento che faciliti l'eleborazione e chissà cos'altro di file in Txt .

Proverò ora a lavorarci e Vi faccio sapere.

Grazie

danibi
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 489
Iscritto il: 11/07/13 09:21
Località: Bergamo


Torna a Applicazioni Office Windows


Topic correlati a "Estrazione dati file txt in excel":


Chi c’è in linea

Visitano il forum: Nessuno e 86 ospiti