Condividi:        

programma TXT in XLS

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

programma TXT in XLS

Postdi mav_f14 » 16/04/12 11:39

Ciao a tutti,
mi presento: Cristian, ed è il mio primo accesso a questo forum, link ereditato da mio papà anche lui iscritto qui!
Sicuro di trovarmi bene in mezzo a voi "super tecnici" e pronto ad imparare e a fare ottimi lavori anche grazie al vostro aiuto.
Ora la questione che mi porta a chiedere il vostro aiuto:
Mettiamo che ho un file di testo (semplice blocco note di windows *.txt) nel quale sono contenute parecchie righe, tra le quali io devo andare a prendere determinate variabili (tipo FHT_1587), e riportarle, come testo, insieme a ciò che è scritto a riguardo su un foglio EXCEL.

Ad esempio:
file di testo contiene:

FHT_1587: percentuale 96%
FHT_1588: fuori giri massimo 87, tempo funzionamento 74
FHT_1589: percentuale 12%

io voglio prendere solo la prima riga e la seconda, sono le due variabili che mi interessano e voglio importarle in excel, però in modo automatico, visto che parlo di centinaia di righe e non copiandole una ad una come faccio adesso..
esiste un modo?

ciao e grazie mille
Cristian
mav_f14
Newbie
 
Post: 6
Iscritto il: 16/04/12 11:27

Sponsor
 

Re: programma TXT in XLS

Postdi Anthony47 » 16/04/12 12:07

Ciao Christian, benvenuto nel forum.
Quello che chiedi e' fattibile, dovresti spiegare meglio quale e' la chiave di ricerca ( ad esempio con FHT_1587 non ti verra' resa la line FHT_1588) e magari fornire un piccolo file di esempio; guarda qui per come fare: viewtopic.php?f=26&t=80395
Per allegare il link dovrai avere almeno tre messaggi pubblicati, eventualmente scrivine qualcuno (in questa discussione) solo per arrivare a tre...

Ti aspettiamo...
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: programma TXT in XLS

Postdi mav_f14 » 16/04/12 14:12

ok.. secondo messaggio.. :D

grazie mille prima di tutto per la risposta tempestiva...
mav_f14
Newbie
 
Post: 6
Iscritto il: 16/04/12 11:27

Re: programma TXT in XLS

Postdi mav_f14 » 16/04/12 14:14

perfetto.. terzo messaggio..

in pratica di un file TXT pieno zeppo di nomi e righe devo andare a prendere solamente alcuni di questi nomi, portandomi dietro anche le informazioni che questi nomi riportano, su di un foglio excel..
con l'esempio allegato nel prossimo messaggio mi spiegherò molto meglio..
mav_f14
Newbie
 
Post: 6
Iscritto il: 16/04/12 11:27

Re: programma TXT in XLS

Postdi mav_f14 » 16/04/12 14:21

Dal file al link:

https://rapidshare.com/files/2178075047/esempio1.LOG

devo prendere dalle variabili:

HTTU_184
HTTU_189

il valore al fondo della riga (43.244 e 0.00) e riportarlo su di un file excel in una data casella..

..ho cercato di essere il più chiaro possibile... :?:
mav_f14
Newbie
 
Post: 6
Iscritto il: 16/04/12 11:27

Re: programma TXT in XLS

Postdi Anthony47 » 16/04/12 23:05

Ehmmm, al momento l' unica "regola" che deduco dalle tue informazioni e' che vuoi prendere il terzo campo del primo e dell' ultimo record dopo il titolo e portarli in due caselle del foglio excel; ma temo che la cosa sia piu' complessa. Quindi dovresti impegnarti "ancora di più" per descrivere quale e' la chiave di ricerca della prima e della seconda voce da prelevare.

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

Re: programma TXT in XLS

Postdi mav_f14 » 17/04/12 07:32

ok, mi impegno al massimo:
su un foglio di testo non generato da me, ma da un programma ho qualcosa del tipo:
HTTU_187 (percent of..) 50%
HHTU_123 (accelerator of...) (val1 84; val2 65; val3 off)
HTTU_154 (perrcent of..) 32%
HTTU_187 (percent of..) 50%
HHTU_123 (accelerator of...) (val1 84; val2 65; val3 off)

per utilizzare questi dati, attualmente, dal foglio *.txt, evidenzio il valore della variabile che mi interessa, ad esempio se ho bisogno del valore percent di HTTU_187 copio e incollo: "50%" sul foglio excel, nella casella che mi interessa.
Procedo in questo modo per tutti i valori che mi servono.
Questa però è una procedura piuttosto lunga e volevo automatizzarla, infatti, avendo sul foglio Excel un centinaio di variabili (HTTU_... ; HHTU_...; HTTU_...) che talvolta si ripetono, i valori delle quali sono scritti nel foglio *.txt:

- devo prendere il nome della variabile che mi interessa ad esempio HTTU_187 dal foglio excel;
- andare sul foglio di testo *.txt, aprire la finestra di "trova" (ctrl + t), scrivere il nome della variabile (HTTU_187), fare cerca, copiare il valore di quella variabile (50%),
- riandare sul foglio excel e nella casella sotto il nome della variabile incollare quel valore (50%).

Può esistere qualcosa che automatizzi tutti questi passaggi?
Nella speranza di essere stato più chiaro,
grazie ancora Cristian
mav_f14
Newbie
 
Post: 6
Iscritto il: 16/04/12 11:27

Re: programma TXT in XLS

Postdi wallace&gromit » 17/04/12 08:28

ciao Cristian,
hai provato ad aprire il file .txt direttamente da excel?
all'apertura puoi impostare il criterio di separazione delle colonne scegliendo "spazio".
A quel punto dovresti avere un file in cui la prima colonna riporta tutti gli HTTU_xxx, nella seconda il testo tra parentesi e nella terza il valore % o il gruppo di più valori.
Con un cerca.vert il passo successivo sarebbe poi semplicissimo.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: programma TXT in XLS

Postdi Flash30005 » 17/04/12 08:50

Ciao Cristian e benvenuto anche da parte mia
Ho visto il tuo file e creato questa macro
Dai tuoi post non ho capito bene i dati da importare
(in alcui dici slo la sigla e la parte finale in altri riporti anche il testo)
Provala e fai sapere

Codice: Seleziona tutto
Sub ImportaTxt()
Perc = ThisWorkbook.Path & "\"
NumP = Worksheets("Chiavi").Range("A" & Rows.Count).End(xlUp).Row
NFile = "Esempio1.log"
    Open Perc & NFile For Input As #1
    Do Until EOF(1)
    Cf = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row + 1
        Line Input #1, Riga
        If Trim(Mid(Riga, 1, 1)) = "T" Then GoTo Salta
        Ftesto = Mid(Riga, InStr(Riga, "[") + 1, Len(Riga))
        LCP = InStr(Ftesto, "]")
        LCS = InStr(Ftesto, " ")
        If LCP > LCS Then Ftesto = Mid(Ftesto, 1, LCS - 1) & Mid(Ftesto, LCP, Len(Ftesto))
        Ftesto2 = Replace(Replace(Replace(Ftesto, " ", ""), "E", ""), "]", "")
        Ftesto3 = Replace(Ftesto2, Chr(9), ";")
        For RicC = 2 To NumP
        ParC = Worksheets("Chiavi").Range("A" & RicC).Value
        LParC = Len(ParC)
        If Mid(Ftesto3, 1, LParC) = ParC Then
            Worksheets("Foglio1").Range("A" & Cf).Value = Ftesto3
        End If
        Next RicC
Salta:
    Loop
    Close #1

    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)), TrailingMinusNumbers:=True
    Columns("A:C").Select
    Columns("A:C").EntireColumn.AutoFit
    Range("A1").Select

End Sub


devi solo sotiuire il nome del file della variabile "NFile"
il file testo dovrà essere ella stessa dirctory dl file xls
La cartella che contiene la macro deve avere almeno due fogli con questi nomi:
1) Foglio1
2) Chiavi

Nel foglio Chiavi inserisci nella colonna A dalla riga 2 in poi le chiavi di ricerca e poi avvia la macro

Eventualmente se hai più file si potrebbe pensare a creare un terzo foglio e unamacro per creare un elenco dei file testo contenuti nella cartella e tramite loop processarli tutti.


Ciao
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: programma TXT in XLS

Postdi mav_f14 » 23/04/12 08:31

ciao!
..purtroppo non riesco sempre a provare immediatamente, ad ogni modo eccomi qui:
la prima cosa che vedo è che non mi importa tutte le chiavi di ricerca, infatti, nel layer CHIAVI sono state inserite in quest'ordine:

HTT_4809
HTT_489K
HTT_48j9
HTT_4818
HTT_48Jk
HTT_4817
però eseguendo la macro, nel foglio 1 NON mi riporta "HTT_489K" e "HTT_48Jk".

Ciaooo
mav_f14
Newbie
 
Post: 6
Iscritto il: 16/04/12 11:27

Re: programma TXT in XLS

Postdi Flash30005 » 23/04/12 12:12

Purtroppo non posso provare ciò che dici perché non ho un file testo con quelle chiavi

Ovvero ho aggiunto qualche riga al precedente file log con quelle chiavi e l'importazione è avvenuta con successo

Inserirei, comunque una riga di codice nella macro precedente per attivare il foglio1 prima di procedere alla separazione dei campi.
Codice: Seleziona tutto
    Close #1   '<<<<<<<<<<<<<<<<<<< esistente
Worksheets("Foglio1").Select  '  '<<<<<<<<<<<<<<<<<<< aggiungere
    Columns("A:A").Select    '<<<<<<<<<<<<<<<<<<< esistente


Ciao
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-


Torna a Applicazioni Office Windows


Topic correlati a "programma TXT in XLS":


Chi c’è in linea

Visitano il forum: Gianca532011 e 77 ospiti