Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

CARICAMENTO FILE .DAT IN UN FILE 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

CARICAMENTO FILE .DAT IN UN FILE EXCEL

Postdi cd7019 » 17/03/15 22:44

salve,
ho un problema di caricamento dati e richiedo, gentilmente il Vostro aiuto.

Vorrei caricare in un file excel tanti file dati (file testo in allegato) presenti in una directory.
I files in questione hanno come separatore delle colonne il carattere ";"
Successivamente chiudere tutti i files dati e ottenere solo n°1 file excel con tutti i dati.


http://www.filedropper.com/dati2014-07-01001

Grazie

esempio 3 file .dat:
file_1.dat 111;222;333;444;555;
666;777;888;999;
file_2.dat 1111;2222;3333;4444;5555;
6666;7777;8888;9999
file_3.dat 11111;22222;33333;44444;55555;
66666;77777;88888;99999

diventano n°1 dati.xls:
A B C D E
111 222 333 444 555
666 777 888 999
1111 2222 3333 4444 5555
6666 7777 8888 9999
11111 22222 33333 44444 55555
66666 77777 88888 99999


EDIT Flash: modificato link per il download del file che risultava errato
EXCEL 2003
cd7019
Utente Senior
 
Post: 232
Iscritto il: 26/06/12 21:38

Sponsor
 

Re: CARICAMENTO FILE .DAT IN UN FILE EXCEL

Postdi Flash30005 » 18/03/15 03:15

Inserisci i file .dat nella stessa directory del file che acquisirà i dati
in questo file inserisci questa macro
Codice: Seleziona tutto
Public Perc As String
Sub ElencoFileDat()
Perc = ThisWorkbook.Path & "\"
Worksheets("Foglio1").Select
Columns("A:IV").ClearContents
Range("A1").Select
ElencoFile Direct:=Perc, Estens:="*.Dat", Inicell:=ActiveCell
TestoInCol
End Sub
Sub ElencoFile(Direct As String, Estens As String, Inicell As Range)
  Dim i As Integer, f As String
  ChDir Direct
  f = Dir(Estens)
  If f = "" Then Exit Sub
  While f <> ""
    Open Perc & f For Input As #1
    Do Until EOF(1)
        Line Input #1, Riga
        DataA = Format(Left(Riga, 10), "mm/dd/yyyy")
        RStr = Mid(Riga, 11, Len(Riga))
        Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Value = DataA & RStr
    Loop
    Close #1
    f = Dir
  Wend
End Sub

Private Sub TestoInCol()

    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
        Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
        ), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
        (20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), _
        Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array( _
        33, 1), Array(34, 1), Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 1), Array(39, 1), _
        Array(40, 1), Array(41, 1), Array(42, 1), Array(43, 1), Array(44, 1), Array(45, 1), Array( _
        46, 1), Array(47, 1), Array(48, 1), Array(49, 1), Array(50, 1), Array(51, 1), Array(52, 1)) _
        , TrailingMinusNumbers:=True
End Sub


e avvia la macro "ElencoFileDat"

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: CARICAMENTO FILE .DAT IN UN FILE EXCEL

Postdi Flash30005 » 18/03/15 03:46

Se vuoi eliminare i campi "sporchi" da spazi e sostituire il punto con la virgola per i numeri decimali modifica questa parte
Codice: Seleziona tutto
    Do Until EOF(1)
        Line Input #1, Riga
        DataA = Format(Left(Riga, 10), "mm/dd/yyyy")
        RStrN = Mid(Riga, 11, Len(Riga))
'------ aggiungere le seguenti righe
        For SS = 1 To 10           
        RStrN = Replace(RStrN, " ", "")      '<<<<<<<<<<<< questa riga toglie gli spazi
        Next SS
        RStrN = Replace(RStrN, ".", ",") '<<<<<<<<<<<<<<< questa riga codice sostituisce il punto con la virgola
'....... fine aggiunta
        Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Value = DataA & RStrN
    Loop


ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: CARICAMENTO FILE .DAT IN UN FILE EXCEL

Postdi cd7019 » 18/03/15 23:39

Grazie mille.
EXCEL 2003
cd7019
Utente Senior
 
Post: 232
Iscritto il: 26/06/12 21:38

Re: CARICAMENTO FILE .DAT IN UN FILE EXCEL

Postdi cd7019 » 19/03/15 10:39

Ciao,
ho provato nuovamente a lanciare il programma ma è comparso un errore di runtime 1004 : non è stato selezionato alcun dato da analizzare.
Ieri funzionava perfettamente, non ho modificato niente.

se fosse possibile,
- si può inserire una directory ad esempio nella cella A1 dove andare a prelevare i dati, in modo da avere tutti i files xls in una sola directory e non copiarli di volta in volta nelle varie directory (ci sono molte directory)
- inserire i dati .dat nel foglio partendo dalla riga 7

http://www.filedropper.com/errore


Grazie
EXCEL 2003
cd7019
Utente Senior
 
Post: 232
Iscritto il: 26/06/12 21:38

Re: CARICAMENTO FILE .DAT IN UN FILE EXCEL

Postdi Flash30005 » 19/03/15 11:24

Dall'immagine non si comprende quale sia la riga che va in errore (in debug la vedi evidenziata in giallo)

Lasciando inalterate le altre due macro sostituisci solo questa
Codice: Seleziona tutto
Sub ElencoFileDat()
'Perc = ThisWorkbook.Path & "\"
Worksheets("Foglio1").Select
Perc = [A1] & "\"
Columns("A:IV").ClearContents
Range("A6").Value = "Ini"
Range("A1").Select
ElencoFile Direct:=Perc, Estens:="*.Dat", Inicell:=ActiveCell
TestoInCol
Range("A6").ClearContents
End Sub


Il percorso completo lo devi inserire nella cella A1

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: CARICAMENTO FILE .DAT IN UN FILE EXCEL

Postdi cd7019 » 19/03/15 15:25

Il problema si manifestava in Private Sub TestoInCol():

Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier: .....

si colora di giallo.

Con le ultime modifiche non succede niente, ho messo la directory dei file .dat, però mi cancella tutto e non mi scrive niente.


Grazie ancora
EXCEL 2003
cd7019
Utente Senior
 
Post: 232
Iscritto il: 26/06/12 21:38


Torna a Applicazioni Office Windows


Topic correlati a "CARICAMENTO FILE .DAT IN UN FILE EXCEL":


Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti