Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Inserire nuove righe excel in base a contenuto di file txt

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

Inserire nuove righe excel in base a contenuto di file txt

Postdi gotrek83 » 06/04/16 15:06

Salve, intanto vi ringrazio anticipatamente per l'aiuto che vorreste offrirmi.
Ora vi espongo il mio problema.

Ho un file excel che aggiorniamo periodicamente andando a leggere il contenuto di alcuni file txt.
Ora io vorrei automatizzare l'operazione.
Ed ecco i problemi:
1) Voglio creare un tasto SFOGLIA per andare a selezionare il percorso in cui sono presenti i nuovi file .txt
2) Per ogni file presente all'interno della cartella deve essere accodata una nuova riga alla tabella esistente.
3) Per ogni file si devono ricercare i campi che NON sono sempre nella stessa posizione ma possono essere identificati da specifiche parole all'interno del .txt.
4) I campi così ottenuti vanno inseriti nelle celle stabilite

Per semplicità vi posto l'intestazione del file excel con le celle contenenti l'elemento identificativo da ricercare e un esempio di file txt che va analizzato.


File txt:

P R 151510Z FEB 16
FM IL PIPPO
TO TOPOLINO
INFO PAPERINO
PLUTO
BT
SIC HBH
PIPPO XX/XXX/XX16
MSGID/AVARIA PR/PIPPO/04//
LIMOP/NESSUNA//
SERV/CNM/0012/C/LIEVE/151500ZFEB16/NOR//
AVARIA/ICCMS/-/
QUADRO DATI/IRREGOLARE//
AMP/DENOMINAZIONE E.S.:
INTERFACCIA+
DENOMINAZIONE ELEM. INF.:
FUSIBILE+
STATO FUNZIONAMENTO: INEFFICIENTE//
AMP/SINTOMATOLOGIA:
MANCATA ALIMENTAZIONE//
RIPAR/TOPOLINIA/151500ZFEB16/MARINARSEN TA//
AMP/GDO DA: 151500ZFEB16 A: 151500ZAPR16+
LDP: NON DISPONIBILE+
MONOGRAFIA: NON DISPONIBILE+
VAREFF/NEGATIVO//
RMKS/NATURA E CAUSA AVARIA:
VETUSTA'+
COMMENTI:
VARIE ED EVENTUALI//
BT


Ed ecco il file excel:
http://imgur.com/BaItrIL
Immagine
gotrek83
Newbie
 
Post: 2
Iscritto il: 06/04/16 14:30

Sponsor
 

Re: Inserire nuove righe excel in base a contenuto di file t

Postdi Anthony47 » 07/04/16 10:50

Ciao gotrek83, benvenuto nel forum.
Puoi pubblicare la soluzione adottata finora, cosi' ci limitiamo ad "aggiungere" l'automatismo di ricerca e lettura dei singoli file?

Ciao, ti aspettiamo.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Inserire nuove righe excel in base a contenuto di file t

Postdi gotrek83 » 07/04/16 10:54

Attualmente ho fatto solo questo:

Codice: Seleziona tutto
Sub acquisizione()
 
Dim fd As FileDialog   'Dichiarazione della variabile "fd" come  FileDialog object.

Set fd = Application.FileDialog(msoFileDialogFilePicker)   'creo l'oggetto FileDialog come finestra di dialogo per le cartelle e lo 'assegno alla variabile "fd"
'Sotto: dichiaro la variabile "FileSelezionato" che conterrà il "percorso" completo dei files selezionati. Sebbene il percorso sia una 'Stringa la variabile deve essere Variant perché il Ciclo For Each... Next lavora solo con variabili Variant o Objects
Dim FileSelezionato As Variant

With fd         'Uso  l'istruzione With...End With per eseguire una serie di istruzioni  con l'oggetto FileDialog.

'Uso il metodo Show per mostrare la dialog box ed uso la condizione If per verificare se l'utente ha premuto il pulsante (di azione, 'di conferma) "OK"
If .Show = -1 Then     'se la condizione si è verificata, allora....

'inizio un ciclo For Each Next necessario per scorrere l'insieme dei files che avremo selezionato (e SOLO QUELLI) (la Colletion del 'FileDialogSelectedItems) nella finestra '"Sfoglia" - sarà possibile selezionare anche files non contigui tenendo premuto il tasto 'CTRL (Control) mentre si selezionano i files.
For Each FileSelezionato In .SelectedItems

'FileSelezionato è ora una stringa che contiene il path (il percorso) di ogni Item (.In SelectedItems)  selezionato.
'e per ogni FileSelezionato inizio un ciclo interno While..Wend che cerchi la prima cella libera e ci scriva nome e percorso.
Dim iRow, icol As Integer
iRow = 2   'inizio la ricerca dalla riga 2 del foglio come esempio
icol = 15     'e dalla colonna 15 la colonna O
While Cells(iRow, icol).Value <> ""
iRow = iRow + 1
Wend
Cells(iRow, icol) = FileSelezionato


Next FileSelezionato

Else    'se invece l'utente avrà premuto il pulsante annulla, si esce dall'istruzione
End If
End With

' elimino la variabile oggetto dalla memoria
Set fd = Nothing

   percorso = Cells(2, 15)

   
      With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & percorso, Destination:=Range _
        ("$A$1"))
   
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlclearCONTEST
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False

    End With
End Sub




Ovvero un file alla volta inserisco il percorso nell'ultima colonna e incolla tutto il contenuto nella prima.
Ovviamente non è quello che serve :D
gotrek83
Newbie
 
Post: 2
Iscritto il: 06/04/16 14:30

Re: Inserire nuove righe excel in base a contenuto di file t

Postdi Anthony47 » 07/04/16 23:02

Speravo che il lavoro fatto includesse il parsing del file di testo secondo il layout desiderato nel file Excel, ma questo non lo vedo.

Mi spiace, per lavorare concretamente servono un paio di esempi di file txt e il file Excel con le intestazioni; e sono sicuro che poi ti chiederemo come si fa a incrociare il contenuto dei txt con i campi segnati nelle intestazioni, quindi tanto vale che "ti porti avanti" anche su questo argomento descrivendo appunto come si incrociano intestazioni e txt.
Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Inserire nuove righe excel in base a contenuto di file txt":


Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti