Condividi:        

Ancora macro per importare 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

Ancora macro per importare dati file txt in excel

Postdi Daltanius » 16/04/09 18:07

Ciao a tutti
mi sono appena iscritto perche la discussione in oggetto è la soluzione ideale per i problemi che abbiamo in ufficio. Io ho il problema di importare dei dati in formato testo in excel ( in realtà per openoffice), io sapevo che bisognava creare una macro purtroppo le mie conoscenze in merito sono molto scarse, ora io vorrei risolvere il mio problema con il vostro aiuto se è possibile e cmq ringrazio chiunque possa darmi una mano.
Veniamo al problema :

File TXT

Codice: Seleziona tutto
19701183115040900800014700000000000BILLA CE.DI FRESCHI         35010VIALE EUROPA, 44         CARMIGNANO DI BRENTA          0    12875     160409
10000417915040900040003679000000000BILLA CE.DI FRESCHI         35010VIALE EUROPA, 44         CARMIGNANO DI BRENTA          0    12875     160409
10000189615040900200003680000000000BILLA CE.DI FRESCHI         35010VIALE EUROPA, 44         CARMIGNANO DI BRENTA          0    12875     160409
10000189715040900300009000000000000BILLA CE.DI FRESCHI         35010VIALE EUROPA, 44         CARMIGNANO DI BRENTA          0    12875     160409
10000143515040900820036750000000000LA VALLE DELL'EDEN SRL      35026VILE DEL COMMERCIO 6/8   CONSELVE                      0    13386     160409
10000143615040900010000224000000000LA VALLE DELL'EDEN SRL      35026VILE DEL COMMERCIO 6/8   CONSELVE                      0    13386     160409
10100707015040900010000142000000000GAMBARO E FRANCESCO         35010VIA POLCASTRO 2          LOREGGIA                      0    13432     160409
10000167015040900680023900000000000ALI SPA                     35100VIA OLANDA, 2            PADOVA                        0 343 160409
19701184515040901370047800000000000ALI SPA                     35100VIA OLANDA, 2            PADOVA                        0 343 160409
10000069515040900180002700000000000GRUPPO ARGENTA - PADOVA     35100VIA DELLA NAVIGAZIONE    PADOVA                        0    12163     160409
10000146815040900040006100000000000SUPERMERCATI PAM SPA - C.SO 35100C.SO STATI UNITI, 18     PADOVA                        0    12690     160409
10000072015040900070000656000000000SUPERMERCATI PAM SPA - C.SO 35100C.SO STATI UNITI, 18     PADOVA                        0    12690     160409
10000540215040900050002600000000000SUPERMERCATI PAM SPA - C.SO 35100C.SO STATI UNITI, 18     PADOVA                        0    12690     160409
10100704115040900220009380000000000SUPERMERCATI PAM SPA - C.SO 35100C.SO STATI UNITI, 18     PADOVA                        0    12690     160409
10100706815040900190008476000000000SUPERMERCATI PAM SPA - C.SO 35100C.SO STATI UNITI, 18     PADOVA                        0    12690     160409
10000812315040900020000840000000000SUPERMERCATI PAM SPA - C.SO 35100C.SO STATI UNITI, 18     PADOVA                        0    12690     160409
19701183515040901680018400000000000PUNTO FRANCHISING SRL - TRIB35020VIA EUROPA, 23/25        TRIBANO                       0    9197      160409
10000218015040900120003000000000000CE.DI SISA CENTRO NORD - VIL35010VIA MESTRINO 54-LOC.RONCHVILLAFRANCA PADOVANA          0    2269      160409
10000213015040900170010500000000000LATTERIA SOCIALE VILLANOVA S35010PIAZZA MERCATO 37        VILLANOVA DI CAMPOSAMPI       0    6582      160409
10001149215040900460007456000000000CENTRALE ADRIATICA - SAN VIT33078ZONA INDUSTRIALE PONTE ROSAN VITO AL TAGLIAMENTO       0    2288      160409T
10000417515040900130003757000000000CENTRALE ADRIATICA - SAN VIT33078ZONA INDUSTRIALE PONTE ROSAN VITO AL TAGLIAMENTO       0    2288      160409
10001149315040900440007040000000000CENTRALE ADRIATICA - SAN VIT33078ZONA INDUSTRIALE PONTE ROSAN VITO AL TAGLIAMENTO       0    2288      160409T
10000017915040900640025040000000000LIDL - SESTO AL REGHENA     33079VIA CORNIA 1A AUTOSTRADA SESTO AL REGHENA              0    6750      160409
10000044215040900050018500000000000MAX FOOD                    45021VIA E FERMI 135          BADIA POLESINE                0    13544     160409
10100706715040900400020830000000000AMA - CRAI EST SOC. COOP. - 31044PIAZZA G. VERDI, 5       MONTEBELLUNA                  0 511 160409
10100698615040900420007611000000000AMA - CRAI EST SOC. COOP. - 31044PIAZZA G. VERDI, 5       MONTEBELLUNA                  0 511 160409
10000041615040900050012600000000000BORTOLATO & FOGLIA SAS      31055VIA AEREOPORTO 12        QUINTO DI TREVISO             0    13283     160409
10000085415040900050006000000000000EURORISTORAZIONE            31020N.D.                     SAN PIETRO DI FELETTO         0    16346     160409
10000085715040900400048500000000000VETTORELLO SRL              31020N.D.                     SAN POLO DI PIAVE             0    16347     160409
10020060815040900040003100000000000FILARDI                     31100N.D.                     TREVISO                       0    16314     160409
10000821115040900140005526000000000CASEUM SAS DI REATO & C.    31050VIA F.LLI ROSSELLI 3/15  VILLORBA                      0    13201     160409
10000017015040900760060943000000000SERTUBI TRISTE              34100VIA VON BRUCK 32         TRIESTE                       0    10340     160409
10000112015040901340029081000000000COSPALAT FVG                33010VIA DELLA CODA 20/2      PAGNACCO                      0    16049     160409
10000150015040900020004100000000000CARREFOUR - TAVAGNACCO      33010VIA NAZIONALE 127        TAVAGNACCO                    0    13101     160409
10000102415040900040001750000000000PANORAMA SPA - UDINE        33100VIALE VENEZIA 327/329    UDINE                         0    12538     160409
10000010415040900190004940000000000CATTEL CATERING S.P.A.      30016VIA PIAVE VECCHIO 42     JESOLO                        0    2181      160409
10100702215040900480023246000000000CATTEL CATERING S.P.A.      30016VIA PIAVE VECCHIO 42     JESOLO                        0    2181      160409
10000146215040900030006200000000000CARREFOUR - MARCON          30020VIA E.MATTEI 1/A         MARCON                        0    9831      160409
10100706615040900950022662000000000ALIMENTA SPA                30020VIA CALNOVA, 97/99       NOVENTA DI PIAVE              0 384 160409
10000102515040900040001550000000000CARREFOUR - PORTOGRUARO     30026VIA PRATI GUORI,29       PORTOGRUARO                   0    12757     160409
10100700615040900270006330000000000SUPERMERCATI CADORO SPA - QU30020VIA ABATE TOMMASO 65     QUARTO D'ALTINO               0    10850     160409
10000818015040900090001512000000000VOLALTO SRL                 30020VIA T. ABBATE, 65        QUARTO D'ALTINO               0    11643     160409
10000817215040900080003924000000000VOLALTO SRL                 30020VIA T. ABBATE, 65        QUARTO D'ALTINO               0    11643     160409
10100707615040900010000284000000000SUPERMERCATI PAM SPA - SPINE30038VIA DELLE INDUSTRIE 8    SPINEA                        0    12686     160409
10000025015040900140002180000000000ARGENTA                     30100VIA CAPPELLETTO 10       MESTRE                        0    11794     160409
10000662015040900350025000000000000SHIPS SERVICE               30100VIA TORINO 151           MESTRE                        0    10377     160409
10090195515040900020003181000000000ANTICA TRATT. AL SOLE       36020VIA FONTANA FOZZE 21     CASTEGNERO                    0    13967     160409
10090193815040900010001860000000000TRATTORIA ISETTA SNC        36040VIA PEDERIVA 96          GRANCONA                      0    15781     160409
10000040515040900980029400000000000DIAL SRL - MONTEGALDA       36047VIA PONZIMIGLIO, 2       MONTEGALDA                    0    12048     160409
10000040715040902940088200000000000DIAL SRL - MONTEGALDA       36047VIA PONZIMIGLIO, 2       MONTEGALDA                    0    12048     160409
10090195215040900010002371000000000RIST. CA` TAKEA DI LEONI M. 36060VIA COL ROIGO 17         ROMANO D'EZZELINO             0    16343     160409
10100704815040900350017808000000000MARR VALDAGNO               36078                         VALDAGNO                      0    7478      160409
10000142914040900020002184000000000UNICOMM SRL                 35010N.D.                     RONCHI DI CAMPANILE           0    16309     150409
10000006914040900460015000000000000VENETALAT SRL               36063VIA NONIS 22             MAROSTICA                     0    11499     150409


Tracciati bordereaux, in allegato.

Come potete vedere , almeno dal canto mio non è facile impostare questi dati, però allo stesso modo ho visto che di soluzioni nel post ce ne sono il problema è che non sono riuscito a realizzarne neanche una. La mia richiesta , se qualcuno a tempo è voglia è questa: Importare i dati da txt a excel ( meglio se fosse openoffice, ma nn indispensabile), poter aggiornare i dati di altri borderaux dei giorni successivi . Ecco tutto qui, o meglio è quello che mi serve più urgente per il resto non voglio essere esigente perchè sò bene che chiunque si presti a dare una mano lo fà per propria soddisfazione, cmq se qualcuno volesse sapere il resto delle mie esigenze mi contatti pure via MP( in sostanza i dati importati vengono poi inseriti in altri fogli excel con il copia incolla o stampati ).
Cosa posso dirvi ancora grazie mille per chiunque perda del suo tempo per aiutarmi.
Ciao
Allegati

[L’estensione zip è stata disattivata e non puó essere visualizzata.]

Daltanius
Newbie
 
Post: 5
Iscritto il: 16/04/09 16:28

Sponsor
 

Re: macro per importare dati file txt in excel

Postdi ricky53 » 16/04/09 18:20

Ciao,
dovresti aprire una nuova discussione per non confondere quanto già scritto in questa.

La cosa è fattibile e non dovrebbe essere problematica.
Alcune domande per poter iniziare:
1. quante volte fai l'operazione per importare i dati
2. i dati hanno sempre la stessa struttura
3. tu sai indicarci come suddividere i dati del file TXT o dobbiamo ricavarlo da quanto scritto nel file
4. che elaborazioni devi fare dopo aver importato i dati oltre la stampa.

Termino ma potrebbe essere necessaria qualche altra informazione.

A presto da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: macro per importare dati file txt in excel

Postdi ricky53 » 16/04/09 18:24

Ciao,
non avevo visto il contenuto dell'allegato: c'è il tracciato del file txt.
Queta sera lo guardo.
Però apri una nuova discussione ed allega, se puoi, in file txt così come ti arriva.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: macro per importare dati file txt in excel

Postdi Daltanius » 16/04/09 22:45

Ciao e grazie mille della velocità con cui mi hai risposto. Apro una nuova discussione e allego il tutto , quindi specifico per filo e per segno di cosa ho bisogno. Grazie ancora.
Daltanius
Newbie
 
Post: 5
Iscritto il: 16/04/09 16:28

Re: Ancora macro per importare dati file txt in excel

Postdi Anthony47 » 17/04/09 00:21

La discussione in cui hai inserito il tuo problema era ancora aperta; ho pertanto spostato la tua domanda in una nuova discussione.
NON APRIRNE UN' ALTRA

Guardando il testo inserito nel messaggio, mi pare che i tuoi record siano a lunghezza fissa, quindi dovrebbe essere possibile splittare quelle stringhe distribuendone in contenuto in celle adiacenti tramite la procedura di Testo in colonne:
-inserisci le stringhe in un foglio excel
-Menu /Dati /Testo in colonne
-spunti Larghezza fissa, Avanti
-inserisci un separatore nelle posizioni che servono (lo inserisci con un click, lo sposti cliccandogli sopra e poi trascinando, lo cancelli con doppioclick); Avanti
-puoi selezionare le singole colonne e impostarne il formato; in particolare cio' e' importante per i campi Data
-Fine

Se le stringhe da splittare sono in un file di testo puoi anche procedere tramite "importazione dei dati": selezioni la posizione in cui vuoi importare i dati, Menu /Dati /Importa dati esterni /importa dati; scegli il file da importare, procedi come descritto nel metodo Testo in colonna.
Se registri una macro mentre fai tutte queste cose e la associ a un pulsante (trovi questo simbolo nella barra degli strumenti Moduli), potrai ripetere le operazioni solo premendo il pulsante. Questa automazione puo' anche essere fatta quando sei sicuro che il metodo funziona per i tuoi bisogni.

Ciao, fai sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ancora macro per importare dati file txt in excel

Postdi Flash30005 » 17/04/09 14:25

Per importare i tuoi file ho pensato di creare una cartella di excel con due fogli
La macro inserisce tutti i dati in in un foglio denominato DatiTxt e in un secondo foglio DatiEff potrai linkare i soli campi che ti interessano del foglio DatiTxt, intanto ti invio la macro e l'allegato, prova e fai sapere...

Ciao

Codice: Seleziona tutto
Private FullNome, vettore(21) As String
Sub ScegliFile()
With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "All files", "*.*"
        .Filters.Add "Text", "*.txt", 1
        .Show
     If .SelectedItems.Count = 0 Then
     MsgBox ("Nessuna voce selezionata, procedura annullata")
     GoTo Esci
     End If
For I = 1 To .SelectedItems.Count
     FullNome = .SelectedItems(I)
    Call Caricamento
Next I
    End With
Esci:
End Sub
Sub Caricamento()
Contr = ""
    Open FullNome & riga0 For Input As #1
        Do Until EOF(1)
            Line Input #1, Riga
            vettore(1) = Mid(Riga, 1, 1)
            vettore(2) = Mid(Riga, 2, 9)
            DataB = Mid(Riga, 10, 6)
            vettore(3) = Mid(DataB, 1, 2) & "/" & Mid(DataB, 3, 2) & "/20" & Mid(DataB, 5, 2)
            vettore(4) = Mid(Riga, 16, 3)
            vettore(5) = Val(Mid(Riga, 20, 5) & "," & Mid(Riga, 25, 2))
            vettore(6) = Val(Mid(Riga, 27, 7) & "," & Mid(Riga, 34, 2))
            vettore(7) = Mid(Riga, 36, 28)
            vettore(8) = Mid(Riga, 64, 5)
            vettore(9) = Mid(Riga, 69, 24)
            vettore(10) = Mid(Riga, 94, 22)
            vettore(11) = Mid(Riga, 117, 1)
            vettore(12) = Mid(Riga, 118, 1)
            vettore(13) = Mid(Riga, 119, 4)
            vettore(14) = Mid(Riga, 124, 1)
            vettore(15) = Mid(Riga, 125, 1)
            vettore(16) = Mid(Riga, 126, 1)
            vettore(17) = Mid(Riga, 127, 1)
            vettore(18) = Mid(Riga, 128, 1)
            vettore(19) = Mid(Riga, 129, 10)
            DataC = Mid(Riga, 139, 6)
            vettore(20) = Mid(DataC, 1, 2) & "/" & Mid(DataC, 3, 2) & "/20" & Mid(DataC, 5, 2)
            vettore(21) = Mid(Riga, 145, 1)
            Sheets("DatiTxt").Select
            Y = Range("A" & Rows.Count).End(xlUp).Row + 1
            For I = 1 To 21
            Sheets("DatiTxt").Cells(Y, I).Value = vettore(I)
            Next I
            Y = Y + 1
    Loop
    Close #1
NR = Worksheets("DatiTxt").Range("A" & Rows.Count).End(xlUp).Row
    Sheets("DatiEff").Select
    Range("A2:U2").Select
    Selection.AutoFill Destination:=Range("A2:U" & NR), Type:=xlFillDefault
    Columns("A:U").Select
    Columns("A:U").EntireColumn.AutoFit
    Range("B3").Select

    File = Mid(FullNome, InStrRev(FullNome, "\") + 1, 50)
    Percorso = Mid(FullNome, InStrRev(FullNome, ":") - 1, InStrRev(FullNome, "\"))
    inpfile = FullNome
    outfile = Percorso & "ArchivioTxt\" & File

    On Error Resume Next
    FileCopy inpfile, outfile
    Kill FullNome
    On Error GoTo 0

End Sub




P.S crea, nella directory dove hai i file txt, una sotto cartella denominata ArchivioTxt perché una volta processati i file txt gli stessi vengono spostati in questa cartella Archivio.
Ultima cosa le formule (link) che sono nel Range A2 a U2 del foglio DatiEff non devono essere cancellate, eventualmente sostituite da altri link
Allegati

[L’estensione rar è stata disattivata e non puó essere visualizzata.]

Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Ancora macro per importare dati file txt in excel

Postdi Daltanius » 18/04/09 09:04

Ciao a tutti
Innanzi tutto grazie per l'aiuto , purtroppo devo dirti che sono proprio una frana con excel perchè non sò neanche come salvare la macro e usarla, puoi gentilmene dirmelo ' Grazie ancora
Daltanius
Newbie
 
Post: 5
Iscritto il: 16/04/09 16:28

Re: Ancora macro per importare dati file txt in excel

Postdi ricky53 » 18/04/09 17:04

Ciao,
leggendo la guida in linea ne potevi uscire fuori.
Comunque:
1. dal foglio excel aperto "Alt+F11"
2. nel VBAProject tasto destro mouse , inserisci, Modulo
3. copia la macro
4. per eseguirla "F5"
5. alla fine la associ ad una combinazione di tasti o ad un pulsante

Però devi darti da fare anche tu con la "Guida in Linea" (click su "?") del VBA altrimenti non impari nulla.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Ancora macro per importare dati file txt in excel

Postdi Daltanius » 18/04/09 23:25

Ciao a tutti
Allora ringraziando sempre per l'aiuto che mi state dando, voglio però puntualizzare che le prove descritte le ho fatte , perchè dopo aver scritto il post ho trovato il tempo per fare delle ricerche, detto questo purtroppo devo segnalare che la macro non mi funziona e dà i seguenti errori:
Se esegue "Caricamento" mi dà Errore run-time '75': Errore di accesso al percorso/file e il debug mi segna questa riga (Open FullNome & riga0 For Input As #1)
Se eseguo "Sceglifile" mi fà scegliere il file da caricare però poi mi dà Errore run-time '9' : Indice non incluso nell'intervallo e il debug mi segna questa riga (Sheets("DatiTxt").Select). Non penso di aver sbagliato qualche procedura perche ho creato una cartella a parte con all'interno la cartella archiviotxt , però può essere vero anche il contrario, ad ogni modo una soluzione l'ho trovata utilizzando la procedura " impostazione guidata testo", la devi fare ogni volta che importi un nuovo file ma alla fine funziona.
Ora stò leggendo come registrare una macro ed eventualmente metterò il codice se interessa, ovvviamente non è come quello fatto da un esperto ma è sempre un punto di partenza.
Ultima cosa io pensavo che le macro una volte inserite nei moduli si dovessero salvare come di salva un file ma da quello che vedo non è cosi, sbaglio?
Ciao a tutti di nuovo.
Daltanius
Newbie
 
Post: 5
Iscritto il: 16/04/09 16:28

Re: Ancora macro per importare dati file txt in excel

Postdi ricky53 » 19/04/09 19:29

Ciao,

non devi mollare alla prima difficoltà!!!
Hai seguito le indicazioni ricevute?
Io l'ho provata e funziona benissimo.
il nome del foglio lo hai assegnato come detto "DatiTxt"?

Utilizzare il metodo che hai utilizzato (manuale) con tutte quelle colonne ... rischi di sbagliare e poi farlo ogni volta?
Riprova e ne uscirai fuori.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Ancora macro per importare dati file txt in excel

Postdi Daltanius » 19/04/09 20:10

Ciao a tutti
si effettivamente funziona, sbagliavo perchè aprivo un file exel nuovo e non quello inviatomi in allegato, ho fatto partire e si sono aggiornati i dati automaticamente, molto bene. Grazie infinite dell'aiuto.
Ciao a tutto il Forum alla prossima volta.
Daltanius
Newbie
 
Post: 5
Iscritto il: 16/04/09 16:28

Re: Ancora macro per importare dati file txt in excel

Postdi ricky53 » 19/04/09 20:51

Ciao,
Bene!
Per la altre necessità sai che ci trovi qui.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Ancora macro per importare dati file txt in excel

Postdi Anthony47 » 19/04/09 23:24

Ricky53 ha scritto:Bene!
Per la altre necessità sai che ci trovi qui.

...sempre piu' numerosi.

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

Re: Ancora macro per importare dati file txt in excel

Postdi ricky53 » 19/04/09 23:33

Ciao,
numerosi giovani (...) dotati di voglia di condividere conoscenza ...
Bye, Bye
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia


Torna a Applicazioni Office Windows


Topic correlati a "Ancora macro per importare dati file txt in excel":


Chi c’è in linea

Visitano il forum: Nessuno e 88 ospiti