La nostra politica non vieta il crossposting; tuttavia e' obbligatorio "seguire" la discussione...
Non so cosa ti e' stato gia' risposto, io ti propongo questa macro:
- Codice: Seleziona tutto
Sub txtImp()
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=109935
Dim myF As String, myFF, fRiga As String, cLin As Long
Dim I As Long
'
myF = "C:\Percorso\NomeFile.txt" '<<< Il percorso + nome del file da importare
Range("T:U").ClearContents '!!! AZZERA inizalmente le colonne T-U
Close #1
Open myF For Input As #1
Do While Not EOF(1)
cLin = cLin + 1
Line Input #1, fRiga
If cLin > 1 Then
For I = 8 To 1 Step -1
If Mid(fRiga, I, 1) = "0" Then Exit For
Next I
If I > 0 Then
str1 = Mid(fRiga, I + 1, 12 - I)
Cells(cLin, "T") = str1
Cells(cLin, "U") = Mid(fRiga, 18, 3)
End If
End If
DoEvents
Loop
Close #1
End Sub
Va messa in un "Modulo standard" del vba. La riga marcata <<< va personalizzata come da commento, poi all'occorrenza va eseguita la Sub txtImp.
Le colonne T e U devono essere state preventivamente formattate come "Testo"; il loro contenuto viene azzerato senza preavviso a inizio macro (vedi istruzione marcata !!!; eliminare l'istruzione se l'azzeramento e' da evitare)
Questa macro apre il file txt, ne legge il contenuto da riga 2 in avanti e da esse estrae le due informazioni richieste.
Se invece il testo fosse gia' in colonna A, allora potresti usare in T2 la formula
- Codice: Seleziona tutto
=STRINGA.ESTRAI(A2;MAX((STRINGA.ESTRAI(A2;RIF.RIGA($1:$8);1)="0")*RIF.RIGA($1:$8))+1;12-MAX((STRINGA.ESTRAI(A2;RIF.RIGA($1:$8);1)="0")*RIF.RIGA($1:$8)))
Va confermata tramite i tasti Contr-Maiusc-Enter (non il solo Enter) e poi copiata verso il basso
Per la colonna U, dovrebbe bastare in U2
- Codice: Seleziona tutto
=STRINGA.ESTRAI(A2;18;3)
Da copiare poi verso il basso.
FAI SAPERE...