Grazie a questo forum mi sto sbizzarrendo a mettere in piedi macro per alcuni miei lavori.
Ultimamente mi sto dedicando a modificare dei file di testo attraverso il:
- Codice: Seleziona tutto
Worksheets("Foglio1").Activate
fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If fileToOpen = False Then
Sheets("Foglio1").Cells(1, 1) = ""
Exit Sub
Else
Sheets("Foglio1").Cells(1, 1) = fileToOpen
End If
mycell = fileToOpen
myfile = ThisWorkbook.Sheets("Foglio1").[A1] & "Mod.txt"
Open mycell For Input As #1
Open myfile For Output As #2
e quindi un ciclo Do While Not EOF.
Riesco però solo a "modificare" le singole righe. riga per riga, ma quello che vorrei provare a fare è incastrare due righe successive se si verifica una certa condizione.
Vi faccio subito l'esempio che è decisamente più efficace di ogni parola.
I miei file di testo sono così organizzati (testo originale):
------------
C00007336836 SASSARI 10
3provaprovaprovaprovaprovaprovaprovaprovaprovaprova
C00007522954 SASSARI 10
3can che abbaia
C00002965873 SASSARI 15
C00007094942 SASSARI 15
------------
(tra SASSARI e il numero ci sono 55 spazi vuoti)
con un ciclo if vorrei che se Mid$(v, 1, 1) = "3"
allora vengano presi i primi 30 caratteri della riga che comincia con 3 (ma dopo il 3 e indipendentemente dalla lunghezza) e vengano incastrati tra la posizione 44 e 73 della riga precedente, altrimenti si printa la riga così come è. In pratica vorrei ottenere il seguente risultato (testo Mod):
------------
C00007336836 SASSARI provaprovaprovaprovaprovaprova 10
C00007522954 SASSARI can che abbaia 10
C00002965873 SASSARI 15
C00007094942 SASSARI 15
------------
Come potrei risolvere?
Grazie mille in anticipo