eccomi nuovamente a chiedere una delucidazione riguardo la possibilità di accelerare il mio lavoro eheh.
Allora, i files su cui devo lavorare sono dei txt in input e in output.
Semplificherò il loro contenuto e la macro originale in modo da risultare subito immediato ciò che vorrei eseguire.
I miei txt avranno tutti il seguente contenuto interno:
-----------------------
xxxxx yyyyy wwwww
xxxxx yyyyy wwwww
xxxxx yyyyy wwwww
xxxxx zzzzz wwwww
xxxxx yyyyy wwwww
xxxxx yyyyy wwwww
xxxxx yyyyy wwwww
-----------------------
La mia macro è questa (operazione inventata per l'occasione):
- Codice: Seleziona tutto
Sub Prova1()
Dim V As Variant
fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")
mycell = fileToOpen
myfile = fileToOpen & "_SPAZI_MOD.txt"
Open mycell For Input As #1
Open myfile For Output As #2
Do While Not EOF(1)
Line Input #1, V
If Mid$(V, 7, 5) = "yyyyy" Then
va = Mid$(V, 1, 6)
vb = "prova"
vc = Mid$(V, 12, 6)
modifica = va & vb & vc
Print #2, modifica
Else
Print #2, V
End If
Loop
Close #1
Close #2
MsgBox ("ELABORAZIONE TERMINATA")
Range("A1").Select
End Sub
che crea un file mod il cui interno si presenterà così:
-----------------------
xxxxx prova wwwww
xxxxx prova wwwww
xxxxx prova wwwww
xxxxx zzzzz wwwww
xxxxx prova wwwww
xxxxx prova wwwww
xxxxx prova wwwww
-----------------------
Ora, il mio quesito è questo: io ho decine di file txt, diciamo tutti identici formalmente (si distinguono solo per il nome), e vorrei evitare di eseguire la stessa macro per ognuno di essi. Pensavo a una multiselezione in modo da aprirli insieme e su ognuno di essi eseguire la macro in un solo colpo.
Ho trovato che per la multiselezione potrei usare il comando:
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="Text Files (*.txt), *.txt", _
MultiSelect:=True, Title:="Text Files to Open")
ma non riesco a creare un ciclo che li consideri tutti in un colpo...
ci sarebbe questa possibilità?
Un grazie anticipato a ogni suggerimento