2014-12-12

Reemplazar carácter en un fichero de texto con VBA en Excel cuadro diálogo

Title Anteriormente vimos como reemplazar carácter en un fichero de texto con VBA en Excel. En esta ocasión, en lugar de especificar en nuestro código la ruta y nombre del fichero, lo seleccionamos mediante un cuadro de diálogo. El nuevo fichero con el sufijo _final se creará en la misma ruta del fichero seleccionado.

Public Sub ReemplazarCaracteresExcel()

Application.ScreenUpdating = False
Set wb = Workbooks.Open(Filename:=Application.GetOpenFilename)
Ruta = ActiveWorkbook.FullName
RutaSinExtension = Left(Ruta, InStrRev(Ruta, ".") - 1)
wb.Close False

Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(Ruta) Then
    Set objStream = fso.OpenTextFile(Ruta, 1, False, 0)
End If
    Set ObjCopy = fso.CreateTextFile(RutaSinExtension & "_final." & Right(Ruta, 3))

For x = 1 To 5  'Salta el nº de líneas indicadas: 5
   objStream.readline
Next x
 
Do While Not objStream.AtEndOfStream
    strOldLine = objStream.readline
    i = 1
    newarray = Split(strOldLine, ",") 'Carácter reemplazado: ,
       strNewLine = newarray(0)
       
    Do Until i = UBound(newarray) + 1
         strNewLine = strNewLine & ";" & newarray(i) 'Carácter nuevo: ;
         i = i + 1
    Loop
    ObjCopy.WriteLine strNewLine
Loop
Application.ScreenUpdating = True
MsgBox "Fichero creado: " & RutaSinExtension & "_final." & Right(Ruta, 3)

End Sub
Borramos estas 3 líneas en el caso de que en el fichero de texto no haya que saltarse líneas en blanco y que provocarían un error:

For x = 1 To 5  'Se salta el nº de líneas indicadas 
    objStream.readline
Next x

Entradas relacionadas:

No hay comentarios:

Publicar un comentario

Nube de datos