Macro exportar hoja excel a texto plano

Necesito un código para exportar el total de una hoja excel a texto plano. He encontrado por ahí una rutina que exporta una celda de la hoja creando un fichero txt :
Sub exportar()
Dim FileSysObj As Object
Dim ArchivoTxt As Object
Dim AreaTexto As String
AreaTexto = Range("B5")
Set FileSysObj = CreateObject("Scripting.FileSystemobject")
Set ArchivoTxt = FileSysObj.CreateTextFile("C:\Ejemplo.txt", True)
ArchivoTxt. WriteLine AreaTexto
ArchivoTxt. Close
End Sub
Lo que necesito es exportar un rango de celdas, por ejemplo, de la B5 a la I100, pero no se como hacerlo.

1 Respuesta

Respuesta
2
Mencionas al inicio de tu consulta que se trata de 'exportar el total de una hoja', entonces la rutina que te guarda la hoja activa como archivo txt es esta:
Sub guardaTXT()
'guarda la hoja activa como archivo txt
' Macro grabada el 04/10/2006 por Elsamatilde
'evitar los posibles mensajes de Excel y ejecutando las opciones predeterminadas.
Application.DisplayAlerts = False
'guardar en el directorio del libro activo
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\contactos.txt" _
, FileFormat:=xlText, CreateBackup:=False
'la siguiente asigna un directorio distinto
'ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\yo\Mis documentos\contactos.txt" _
, FileFormat:=xlText, CreateBackup:=False
End Sub
Con respecto a tu rutina, podrías adaptarla para que te copie un rango utilizando un bucle, pero el resultado será una sola col con todos los datos
Sub exportar()
'exporta un rango de celdas resultando col de datos
Dim FileSysObj As Object
Dim ArchivoTxt As Object
Dim AreaTexto
AreaTexto = ActiveSheet.Range("A5:B100").Value
Set FileSysObj = CreateObject("Scripting.FileSystemobject")
Set ArchivoTxt = FileSysObj.CreateTextFile("C:\Documents and Settings\yo\Mis documentos\Ejemplo.txt", True)
'recorre el rango a copiar
Dim celda
For Each celda In AreaTexto
ArchivoTxt.WriteLine celda
Next
ArchivoTxt.Close
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas