Condividi:        

[Excel] Import txt file complesso

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

Re: [Excel] Import txt file complesso

Postdi pidy » 01/06/12 11:52

i file vengono generati da un tool che gira sotto sun!
però è strano che siano diversi, perchè a parte STATUS che l'ho fatto io a mano, gli altri erano gli originali mmm

provo il codice sopra
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Sponsor
 

Re: [Excel] Import txt file complesso

Postdi ricky53 » 01/06/12 11:54

Ciao,
prova ad aprirli con blocco note e vedrai le differenze: alcuni hanno i dati sulla stessa riga altri su righe diverse e sono i due che sono quelli giusti.

PROVA, in caso di errore ... cambiali tu!!!
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: [Excel] Import txt file complesso

Postdi pidy » 01/06/12 12:08

ricky53 ha scritto:Ciao,
prova ad aprirli con blocco note e vedrai le differenze: alcuni hanno i dati sulla stessa riga altri su righe diverse e sono i due che sono quelli giusti.

PROVA, in caso di errore ... cambiali tu!!!


cavolo è vero... ma è il tool che li genera così... forse devo fare un unix2dos prima di prenderli!
provo..
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi pidy » 01/06/12 12:27

Funziona... solo che alla fine esce dalla macro con questo errore
"Elaborazione interrotta: 9 - Indice non incluso nell'intervallo"
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi ricky53 » 01/06/12 12:54

Ciao,
controlla i nomi dei fogli che hai inserito nel file excel !!!

prova a sostituire
Codice: Seleziona tutto
Fine:
'...
    Close 1
   MsgBox "Elaborazione INTERROTTA: " & Err & " - " & Err.Description
End Sub

con
Codice: Seleziona tutto
Fine:
' ...   
    Close 1
    MsgBox "Elaborazione INTERROTTA: " & " Errore n. " & Err & " - " & Err.Description & vbCrLf & vbCrLf & "Nome foglio: " & Mid(Left(NomeFile, Len(NomeFile) - 4), 15) & " - Indice Matrice: " & J
End Sub

così avrai più dettagli sull'errore.
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: [Excel] Import txt file complesso

Postdi pidy » 01/06/12 13:02

eccolo.. c'era un errore in un foglio che avevo creato!

alla grande ora! :D
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi ricky53 » 01/06/12 13:47

Ciao,
bene. Mi fa piacere averti risolto il problema.

Buona continuazione.
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: [Excel] Import txt file complesso

Postdi pidy » 01/06/12 13:50

ricky53 ha scritto:Ciao,
bene. Mi fa piacere averti risolto il problema.

Buona continuazione.


noooo... scappi sul più bello :D

e per il processo inverso? cioè dai 6 fogli dell'excel ricreare i file .gle? è troppo complesso? :?:
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi ricky53 » 01/06/12 14:22

Ciao,
VERO, avevo dimenticato ... però la vedo tosta !!!
Per esempio rimettere i caratteri di separazione che ho tolto (insieme al codice numerico), con il "replace" e poi il resto ...
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: [Excel] Import txt file complesso

Postdi pidy » 04/06/12 12:29

eccomi.. in che senso rimettere?
pensavo fosse più difficile l'import da txt a excel che viceversa ed invece...

in caso provo a vedere cosa riesco a creare :D

se poi qualcun altro ha seguito il post e vuole contribuire ben venga :D

;)
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi ricky53 » 04/06/12 12:54

Ciao,
non è più facile il passaggio da excel al file iniziale, vanno rimessi tutti i caratteri tolti e ricostruito il tracciato ... non è cosa da niente.
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: [Excel] Import txt file complesso

Postdi pidy » 04/06/12 13:04

ricky53 ha scritto:Ciao,
non è più facile il passaggio da excel al file iniziale, vanno rimessi tutti i caratteri tolti e ricostruito il tracciato ... non è cosa da niente.


ecco dopo di questa allora manco ce provo :D
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi ricky53 » 04/06/12 15:15

Ciao,
e ... io non ho il tempo ... al momento !!!
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: [Excel] Import txt file complesso

Postdi pidy » 05/06/12 12:10

ok, non preoccuparti..

solo una cosa che ho notato mentre smanettavo un pò con il codice... nella colonna value description non viene riportato il valore della variabile, ci sono incolonnate solo le descrizioni.

Per intenderci la colonna valuedescription ora è così
valuedescription0
valuedescription1
valuedescription2

Come faccio ad avere come risultato

0|valuedescription0
1|valuedescription1
2|valuedescription2

grazie ;)
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi ricky53 » 05/06/12 13:06

Ciao,
si, i valori numeri davanti la descrizione li avevo tolti pensando che non ti servissero ... appena posso ti invio la versione modificata che riporta anche i valori numerici.
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: [Excel] Import txt file complesso

Postdi pidy » 06/06/12 07:19

ricky53 ha scritto:Ciao,
si, i valori numeri davanti la descrizione li avevo tolti pensando che non ti servissero ... appena posso ti invio la versione modificata che riporta anche i valori numerici.


ok grazie ;)
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi ricky53 » 06/06/12 11:27

Ciao,
vado avanti per piccoli passi ma ... ci risentiremo presto
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: [Excel] Import txt file complesso

Postdi ricky53 » 06/06/12 16:15

Ciao,
ho fatto le modifiche per riportare il valore presente prima del carattere di separazione "|"
Codice: Seleziona tutto
Option Explicit
Option Compare Text
Option Base 1
Public Dato_Letto As String, I As Long, I_App As Long, J As Integer, Appoggio0 As Integer, Appoggio1 As Integer, Appoggio2 As Integer, Appoggio3 As Integer

Sub Scrivi_Dati()
    Dim Percorso As String, NomeFile As String, ElencoNomiFile()
   
    ReDim ElencoNomiFile(6)
    ElencoNomiFile(1) = "localvarsdescrCHECK.txt" '   <----- MODIFICATO in MS-DOS
    ElencoNomiFile(2) = "localvarsdescrCOMMAND.txt" ' <----- MODIFICATO in MS-DOS
    ElencoNomiFile(3) = "localvarsdescrCONTROL.txt" ' <----- MODIFICATO in MS-DOS
    ElencoNomiFile(4) = "localvarsdescrLOCAL.txt" '   <----- MODIFICATO in MS-DOS
    ElencoNomiFile(5) = "localvarsdescrSTATIC.txt" '  <----- ORIGINALE
    ElencoNomiFile(6) = "localvarsdescrSTATUS.txt" '  <----- ORIGINALE
       
    Percorso = "D:\TEMP\" ' <<------------- Inserire il nome del percorso in cui si trova il file
    For J = 1 To 6
        NomeFile = ElencoNomiFile(J)

        Sheets(Mid(Left(NomeFile, Len(NomeFile) - 4), 15)).Select ' <<--------- Inserire un foglio con questo nome
        Columns("A:A").ColumnWidth = 20
        Columns("B:B").ColumnWidth = 40
        Columns("C:C").ColumnWidth = 100
        Columns("D:E").ColumnWidth = 25
        Columns("F:F").ColumnWidth = 100
        Rows("2:2").Select
        ActiveWindow.FreezePanes = True
       
        Cells.ClearContents
        [A1] = "Variabile": [B1] = "ShortDescription": [C1] = "ValueDescription": [D1] = "DefaultText": [E1] = "DefaultTextShort": [F1] = "LongDescription"

        On Error GoTo Fine
        Open Percorso & NomeFile For Input As #1
   
        I = 5
        Do While Not EOF(1)
            Line Input #1, Dato_Letto
            If Dato_Letto <> "" Then
                Elabora_Var
            End If
        Loop
        Close 1
    Next J
    MsgBox "Fine Elaborazione"
    Application.DisplayAlerts = True
    Exit Sub
Fine:
    Close 1
    MsgBox "Elaborazione INTERROTTA: " & " Errore n. " & Err & " - " & Err.Description & vbCrLf & vbCrLf & "Nome foglio: " & Mid(Left(NomeFile, Len(NomeFile) - 4), 15) & " - Indice Matrice: " & J
End Sub

Sub Elabora_Var()
    If Left(Dato_Letto, 1) <> "!" And Right(Dato_Letto, 1) = ";" Then
        Dato_Letto = Replace(Dato_Letto, Chr(34), "", 1)
        Cells(I, 1) = Replace(Dato_Letto, ";", "", 1)
    End If
           
    If InStr(1, Dato_Letto, "!GLE ShortDescription") > 0 Then
        Dato_Letto = Replace(Replace(Dato_Letto, Chr(34), "", 1), ";", "", 1)
        Appoggio1 = InStr(1, Dato_Letto, ":") + 2
        Cells(I, 2) = Mid(Dato_Letto, Appoggio1)
    End If
   
'....................................................................................
    Elabora_ValueDescr ' <<==== Spostato (e MODIFICATO) il codice precedente in questa macro
'....................................................................................
   
    If InStr(1, Dato_Letto, "!GLE DefaultText") > 0 Then
        Dato_Letto = Replace(Replace(Dato_Letto, Chr(34), "", 1), ";", "", 1)
        Appoggio1 = InStr(1, Dato_Letto, ":") + 2
        If InStr(1, Dato_Letto, "!GLE DefaultTextShort") > 0 Then
            Cells(I_App, 5) = Mid(Dato_Letto, Appoggio1)
        Else
            Cells(I_App, 4) = Mid(Dato_Letto, Appoggio1)
        End If
    End If
   
    If InStr(1, Dato_Letto, "!GLE LongDescription") > 0 Then
        Dato_Letto = Replace(Replace(Dato_Letto, Chr(34), "", 1), ";", "", 1)
        Appoggio1 = InStr(1, Dato_Letto, ":") + 2
        Cells(I_App, 6) = Mid(Dato_Letto, Appoggio1)
    End If
End Sub

Sub Elabora_ValueDescr()
    If InStr(1, Dato_Letto, "!GLE ValueDescription") > 0 Then
        Dato_Letto = Replace(Replace(Dato_Letto, Chr(34), "", 1), ";", "", 1)
        Appoggio0 = InStr(1, Dato_Letto, ":") + 2
        Appoggio1 = InStr(1, Dato_Letto, "|") + 1
        I_App = I
        Do While InStr(Appoggio1, Dato_Letto, "|-|") > 0
            Appoggio2 = InStr(Appoggio1, Dato_Letto, "|-|") - 1
            If Appoggio2 < Appoggio1 Then
                Exit Do
            End If
            Cells(I, 3) = Mid(Dato_Letto, Appoggio0, Appoggio2 - Appoggio0 + 1)
            If Left(Cells(I, 3), 1) = "|" Then
                Appoggio1 = InStr(1, Cells(I, 3), "|")
                If Appoggio1 > 0 Then
                    Cells(I, 3) = Mid(Cells(I, 3), Appoggio1 + 1)
                End If
            End If
            Appoggio0 = Appoggio2 + 3
            Appoggio1 = Appoggio0
            I = I + 1
        Loop
    End If
End Sub


Prova e ... sono QUI

Il passaggio inverso dopo le tue verifiche positive.
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: [Excel] Import txt file complesso

Postdi pidy » 07/06/12 08:17

alla grandissima!!

ho fatto solo una piccolissima modifica.. inizializzando la I=3, anzichè a 5 così le variabili cominciano ad essere scritte nella riga 3!

per il resto ottimo!! funziona benissimo ;)
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi ricky53 » 07/06/12 19:16

Ciao,
bene.
Allora appena ho un po' di tempo penso al passaggio inverso ... e speriamo di ritrovarci presto.
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

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Import txt file complesso":


Chi c’è in linea

Visitano il forum: Nessuno e 52 ospiti