Valutazione 4.87/ 5 (100.00%) 5838 voti

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

[Excel] Import txt file complesso

Postdi pidy » 30/05/12 13:19

Ciao ragazzi ed innanzitutto bentrovati a tutti ;)

vengo subito al punto.. devo importare un file di testo in un excel ma in un formato prestabilito.

Il file di testo è costituito da una serie di OBJECTTYPE (circa 20-25), ognuno del quale contiene una serie di variabili;
ad esempio nell'esempio seguente c'è l'oggetto ALIMENTAZIONE che ha 2 variabili A e B.
Ogni variabile ha 5 campi: la shortdescription, la descrizione dei valori che può assumere, poi 2 campi che sono sempre uguali per tutte le variabili (ossia defaulttext e defaultextshort) e infine una longdescription.
E poi di seguito c'è un altro oggetto UA con 2 variabili CDEV e ALB, come ulteriore esempio.

!***********************************************************************
! OBJECTTYPE: "ALIMENTAZIONE"
!***********************************************************************

#ALIMENTAZIONE;

!***********************************************************************
! LOCAL VARIABLES IN OBJECTTYPE: "ALIMENTAZIONE"
!***********************************************************************

#VAR;
A;
!GLE ShortDescription: "shortdescrA";
!GLE ValueDescription: "0|descr0A|-|1|descr1A|-|";
!GLE DefaultText: "The value is %d";
!GLE DefaultTextShort: "";
!GLE LongDescription: "longdescrA";


B;
!GLE ShortDescription: "shortdescrB";
!GLE ValueDescription: "0|descr0B|-|1|descr1B|-|2|descr0B|-|3|descr1B|-|";
!GLE DefaultText: "The value is %d";
!GLE DefaultTextShort: "";
!GLE LongDescription: "longdescrB";


!***********************************************************************
! OBJECTTYPE: "UA"
!***********************************************************************

#UA;

!***********************************************************************
! LOCAL VARIABLES IN OBJECTTYPE: "UA"
!***********************************************************************

#VAR;
CDEV;
!GLE ShortDescription: "Variabile CDEV";
!GLE ValueDescription: "0|Variabile diseccitata.|-|1|Variabile eccitata.|-|";
!GLE DefaultText: "The value is %d";
!GLE DefaultTextShort: "";
!GLE LongDescription: "Questa variabile insieme alla variabile B regola la corretta sequenza per la selezione della cifra del cdb da liberare artificialmente. ";

ALB;
!GLE ShortDescription: "Variabile aLB";
!GLE ValueDescription: "0|Variabile diseccitata.|-|1|Variabile eccitata.|-|";
!GLE DefaultText: "The value is %d";
!GLE DefaultTextShort: "";
!GLE LongDescription: "Questa variabile che corrisponde al rele' aLB dello schema V401 SAV memorizza l'intervento di attivazione o annullamento della procedura di liberazione artificiale del percorso da DCO.";



Ora vorrei creare una macro per importare questo file txt in un file excel così strutturato:
per ogni OBJECTTYPE si dovrà creare un foglio excel con 6 colonne e ad ogni colonna corrisponderà il layout riportato di seguito.

Varibile----ShortDescription-----ValueDescription-----DefaultText-----DefaultTextShort------LongDescription

------A-------------shortdescr----------0: descr0A------------------------------- The value is %d------------longdescr
--------------------------------------------- 1: descr1A------------------------------------------------------------------------

------B-------------shortdescr----------0: descr0B------------------------------- The value is %d------------longdescr
--------------------------------------------- 1: descr1B------------------------------------------------------------------------
--------------------------------------------- 2: descr2B------------------------------------------------------------------------
--------------------------------------------- 3: descr3B------------------------------------------------------------------------



Purtroppo la rete aziendale mi blocca i siti di upload file e quindi non posso allegare i file, spero però sia abbastanza chiaro, i trattini ovviamente sono solo per rendere l'idea delle colonne.

Quindi nell'esempio sopraindicato verrebbe un file excel con 2 fogli: ALIMENTAZIONE e UA strutturati come sopra riportato.


Potreste darmi una mano perchè con macro excel e VB non so dove mettere le mani? :D

Grazie in anticipo
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Sponsor
 

Re: [Excel] Import txt file complesso

Postdi patel » 30/05/12 15:12

non credo che sia un problema facilmente risolvibile con excel, ma aspetta altri pareri, mi sembrano più indicati linguaggi per trattamento testi come bash di linux, ci sono dei validi esperti sul forum di Ubuntu in questa sezione
http://forum.ubuntu-it.org/viewforum.ph ... 56944ca019
potresti ottenere un file di testo con separatori tipo csv facilmente importabile su excel
patel
Utente Senior
 
Post: 120
Iscritto il: 24/04/12 16:03

Re: [Excel] Import txt file complesso

Postdi pidy » 30/05/12 17:38

patel ha scritto:non credo che sia un problema facilmente risolvibile con excel, ma aspetta altri pareri, mi sembrano più indicati linguaggi per trattamento testi come bash di linux, ci sono dei validi esperti sul forum di Ubuntu in questa sezione
...
potresti ottenere un file di testo con separatori tipo csv facilmente importabile su excel


oddio già è difficile per me il VB di excel figuriamoci sistemi linguaggi linux su cui non ho mai messo mano :D
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi pidy » 30/05/12 17:39

ecco i file questo è il txt di input http://www.filedropper.com/msdescr

e questo il layout dell'excel di output che vorrei http://www.filedropper.com/vardescr
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi ricky53 » 30/05/12 17:39

Ciao,
con un po' di pazienza e con fare certosino ... si riuscirà a produrre quello che ti occorre utilizzando dell'opportuno codice VBA che vada a leggere il tuo file di testo, scandisca le righe e ...

Puoi inviare un file di esempio sul quale poter fare le prove?
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Import txt file complesso

Postdi ricky53 » 30/05/12 17:40

Caspita che tempismo lo stesso minuto !!!

Vedo se posso fare qualcosa.

Ho saricato il file TXT: ti servono anche le variabili GLOBALI?
Ultima modifica di ricky53 su 30/05/12 17:46, modificato 1 volte in totale.
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Import txt file complesso

Postdi pidy » 30/05/12 17:45

ricky53 ha scritto:Caspita che tempismo lo stesso minuto !!!

Vedo se posso fare qualcosa.


ahah si in effetti avevo notato la stessa cosa :D

se può servire, l'idea finale (come forse capirai dalle istruzioni del primo foglio excel), è quella di importare il txt nell'excel come indicato sopra, poi editare il testo nelle celle excel, ed infine una volta finite le modifiche riportare il file excel in txt.

Ma andiamo per gradi che è meglio mi sa :)
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi pidy » 30/05/12 17:48

ricky53 ha scritto:Caspita che tempismo lo stesso minuto !!!

Vedo se posso fare qualcosa.

Ho saricato il file TXT: ti servono anche le variabili GLOBALI?


sì, in effetti vedo che hai beccato subito l'eccezione... quelle sono le uniche che non sono definite come OBJECTTYPE ma GLOBAL e non le avevo menzionate per non incasinare troppo la cosa che già semplice non è ;)
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi ricky53 » 30/05/12 17:49

Ciao,
come dico sempre
PASSO PASSO !!

Per adesso risolviamo il caso di importare le variabili, comprese le GLOBALI !!!
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Import txt file complesso

Postdi ricky53 » 30/05/12 18:53

Ciao,
qualcosa ho scritto ... a questa sera se posso ma ... TARDI !!!
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Import txt file complesso

Postdi ricky53 » 30/05/12 23:45

Ciao,
i lavori proseguono ma il certosino deve AGIRE BENE ... a ritrovarci domani visto che la questione è lunga.
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Import txt file complesso

Postdi pidy » 31/05/12 06:59

ricky53 ha scritto:Ciao,
i lavori proseguono ma il certosino deve AGIRE BENE ... a ritrovarci domani visto che la questione è lunga.


ahah grande :lol:

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

Re: [Excel] Import txt file complesso

Postdi ricky53 » 31/05/12 15:11

Ciao,
un assaggio ...
Codice: Seleziona tutto
Option Explicit
Option Compare Text
Public Dato_Letto As String, I As Long, I_App As Long, Appoggio1 As Integer, Appoggio2 As Integer

Sub Scrivi_Dati()
    Dim Percorso As String, NomeFile As String
   
    Percorso = "D:\TEMP\" ' <<------------- Inserire il nome del percorso in cui si trova il file
    NomeFile = "MS.DESCR_A.txt" ' <<------- Inserite il TUO nome del file
    Sheets("Variabili_Globali").Select ' <<--------- Inserire un foglio con questo nome
   
    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 = 2
    Do While Not EOF(1)
        Line Input #1, Dato_Letto
        If Dato_Letto = "#GLOBVAR;" Then
Leggi_Glob:
            Line Input #1, Dato_Letto
            If Dato_Letto = "" Or Left(Dato_Letto, 1) = "#" Or Left(Dato_Letto, 2) = "!*" Then
                GoTo Leggi_Glob
            End If
            If InStr(1, Dato_Letto, "LOCAL VARIABLES IN OBJECTTYPE") > 0 Then

'..........................................................................
' DA SISTEMARE il nome del foglio con il nome dell'OBJECTTYPE
                Sheets("Variabili").Select ' <<--------- TEMPORANEAMENTE Inserire un foglio con questo nome
'..........................................................................
               
                Cells.ClearContents
                [A1] = "Variabile": [B1] = "ShortDescription": [C1] = "ValueDescription": [D1] = "DefaultText": [E1] = "DefaultTextShort": [F1] = "LongDescription"
                I = 2
Leggi_Tutte:
                Line Input #1, Dato_Letto
                If Dato_Letto <> "#VAR;" And (Dato_Letto = "" Or Left(Dato_Letto, 1) = "#" Or Left(Dato_Letto, 2) = "!*") Then
                    GoTo Leggi_Tutte
                End If
                If InStr(1, Dato_Letto, "#VAR;") > 0 Then
Leggi_Var:
                    Line Input #1, Dato_Letto
                    If Dato_Letto = "" Or Left(Dato_Letto, 1) = "#" Or Left(Dato_Letto, 2) = "!*" Then
                        GoTo Leggi_Var
                    End If
                    Elabora_Var
                    GoTo Leggi_Var
                End If
            End If
           
            Elabora_Var
            GoTo Leggi_Glob
        End If
    Loop
Fine:
    Close 1
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
   
    If InStr(1, Dato_Letto, "!GLE ValueDescription") > 0 Then
        Dato_Letto = Replace(Replace(Dato_Letto, Chr(34), "", 1), ";", "", 1)
        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, Appoggio1, Appoggio2 - Appoggio1 + 1)
            Appoggio1 = InStr(1, Cells(I, 3), "|")
            If Appoggio1 > 0 Then
                Cells(I, 3) = Mid(Cells(I, 3), Appoggio1 + 1)
            End If
            Appoggio1 = Appoggio2 + 6
            I = I + 1
        Loop
    End If
   
    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


Apri un nuovo file excel
Copia il codice in un modulo ed eseguilo.
Il codice è commentato.
Devi inserire due fogli con i nomi che trovi nel codice.

La gestione definitiva (un foglio per ogni OBJECTTYPE e con le proprie variabili) è in cantiere ... a breve.

Per il momento prova quanto ti ho inviato ... spero sia tutto corretto.
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Import txt file complesso

Postdi pidy » 31/05/12 19:47

ciao ricky eccomi... allora ora mi ucciderai perchè mi sono accorto di averti caricato il file txt errato...

se ci fai caso il file excel che avevo allegato presentava 6 fogli: check, local, control, static, command e status... bene, o meglio, male... i file da cui importare le descrizioni sono questi

http://www.filedropper.com/localvarsdescrcheck
http://www.filedropper.com/localvarsdescrcommand
http://www.filedropper.com/localvarsdescrcontrol
http://www.filedropper.com/localvarsdescrlocal
http://www.filedropper.com/localvarsdescrstatic
http://www.filedropper.com/localvarsdescrstatus

ogni file di testo (l'estensione è .gle ma li puoi aprire con qualsiasi edito di testo) andrebbe importato nel corrispondente foglio del file;

erroneamente ti avevo allegato il file msdescr.txt che invece è l'output ma non è editabile quindi non andrebbe bene;

ogni OBJECTTYPE è composto da quei 6 file, la mia idea sarebbe quindi di creare tanti file excel quanti sono gli OBJECTTYPE ed ogni file excel contiene 6 fogli appena accennati.

Ti ho confuso troppo le idee? :?:

comunque ho provato quello che avevi scritto sopra e funzionava alla grande, spero che adattarlo non sia troppo complicato.. provo a buttarci un'occhio anche io!

oh grazie mille è scontato!! ;)
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi ricky53 » 31/05/12 22:31

Ciao,
avevo notato i 6 fogli ed i lori nomi, però il file TXT che avevi inviato corrispondeva a quanto avevi scritto nel forum, quindi, non ho dato peso alla cosa (mi ripromettevo di parlartene dopo la tua risposta).
Adesso la cosa è una BOLGIA per il codice che ho scritto !!!
I file non hanno gli stessi separatori di riga (lo noterai aprendoli con "Blocco Note" e la struttura dei dati è molto diversa da quella iniziale !!! Non ci sono più la variabili globali, manca "LOCAL VARIABLES IN OBJECTTYPE", manca "#VAR;" e poi non voluto più proseguire con il riscontro delle differenze!!!

Perchè adesso hai questi sei file?
Come li hai ottenuti?

Non si può partire dal file iniziale?
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Import txt file complesso

Postdi pidy » 01/06/12 06:44

semplicemente per un mio errore...

praticamente questi 6 file sono editabili e una volta compilati producono l'msdescr.txt che ti avevo allegato che è appunto l'output di un compilatore.

importare ed editare l'msdescr.txt purtroppo non va bene, è stato un mio errore... avevo fatto bene l'excel e poi preso dalla fretta anzichè allegarti i 6 file di esempio ti ho allegato il txt di uscita. :roll:

sorry :cry:
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi ricky53 » 01/06/12 09:43

Ciao,
certo ... la nuova struttura è più semplice però va buttato, quasi tutto, quello che ho fatto ... mi dovrai una cena quando ti avrò fatto le modifiche !!!

Infine si decide di mettere i dati dei sei file "gle" tutti su un solo FILE excel contenete 6 fogli?
CONFERMI !!!


Attenzione i dati dei file non hanno tutti lo stesso formato:
controlla il file "...LOCAL" e il file "...STAUS" e capirai.
Devono essere MS-DOS TXT altrimenti l'elaborazione darà risultati imprevedibili.
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Import txt file complesso

Postdi pidy » 01/06/12 09:53

ricky53 ha scritto:Ciao,
certo ... la nuova struttura è più semplice però va buttato, quasi tutto, quello che ho fatto ... mi dovrai una cena quando ti avrò fatto le modifiche !!!

anche 2!!!
ricky53 ha scritto:Infine si decide di mettere i dati dei sei file "gle" tutti su un solo FILE excel contenete 6 fogli?
CONFERMI !!!


confermo

ricky53 ha scritto:Attenzione i dati dei file non hanno tutti lo stesso formato:
controlla il file "...LOCAL" e il file "...STAUS" e capirai.
Devono essere MS-DOS TXT altrimenti l'elaborazione darà risultati imprevedibili.


il formato corretto è quello di local e degli altri!
status in effetti come formato è diverso (solo perchè l'ho fatto io a mano, normalmente avrà un formato uguale agli altri)... gli altri sono i formati standard!
pidy
Utente Junior
 
Post: 20
Iscritto il: 30/05/12 12:31

Re: [Excel] Import txt file complesso

Postdi ricky53 » 01/06/12 11:04

Ciao,
ATTENZIONE
il formato di
"STATUS" o di "STATIC" è quello giusto,
quello di
"CHECK", "COMMAND", "CONTROL" e "LOCAL" non va bene !!!!

Chi produce questi file?
Come vengono prodotti?
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Import txt file complesso

Postdi ricky53 » 01/06/12 11:32

Ciao,
prova questo nuovo codice facendo attenzione ai 4 file che dovrai salvare in formato MS-DOS altrimenti avrai errore di OVERFLOW oppure i dati ottenuti non saranno buoni (leggi il mio precedente intervento)
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, Appoggio1 As Integer, Appoggio2 As Integer

Sub Scrivi_Dati()
    Dim Percorso As String, NomeFile As String, ElencoNomiFile()
   
    ReDim ElencoNomiFile(6)
    ElencoNomiFile(1) = "localvarsdescrCHECK.gle" '   <----- MODIFICATO in MS-DOS
    ElencoNomiFile(2) = "localvarsdescrCOMMAND.gle" ' <----- MODIFICATO in MS-DOS
    ElencoNomiFile(3) = "localvarsdescrCONTROL.gle" ' <----- MODIFICATO in MS-DOS
    ElencoNomiFile(4) = "localvarsdescrLOCAL.gle" '   <----- MODIFICATO in MS-DOS
    ElencoNomiFile(5) = "localvarsdescrSTATIC.gle" '  <----- ORIGINALE
    ElencoNomiFile(6) = "localvarsdescrSTATUS.gle" '  <----- ORIGINALE
       
    Percorso = "D:\TEMP\" ' <<------------- Inserire il nome del percorso in cui si trova il file
'    NomeFile = "localvarsdescrCHECK_A.txt" ' <<------- Inserite il TUO nome del 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: " & Err & " - " & Err.Description
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
   
    If InStr(1, Dato_Letto, "!GLE ValueDescription") > 0 Then
        Dato_Letto = Replace(Replace(Dato_Letto, Chr(34), "", 1), ";", "", 1)
        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, Appoggio1, Appoggio2 - Appoggio1 + 1)
            Appoggio1 = InStr(1, Cells(I, 3), "|")
            If Appoggio1 > 0 Then
                Cells(I, 3) = Mid(Cells(I, 3), Appoggio1 + 1)
            End If
            Appoggio1 = Appoggio2 + 6
            I = I + 1
        Loop
    End If
   
    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
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Prossimo

Torna a Applicazioni Office Windows


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


Chi c’è in linea

Visitano il forum: Marius44, patel e 11 ospiti