Macro para generar archivo txt

04/07/2006 - 04:29 por GR | Informe spam
Hola amigos:

Como seria el codigo para generar un archivo txt, es decir, quisiera que la
columna A,B,C,D,G,H,X,Y,Z,AA,AB FILA 5 HASTA LA 10,000 se genere mi archivo
txt.

Gracias por sus comentarios

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
04/07/2006 - 05:41 | Informe spam
hola, 'anomimo/a' !

Como seria el codigo para generar un archivo txt, es decir
quisiera que la columna A,B,C,D,G,H,X,Y,Z,AA,AB FILA 5 HASTA LA 10,000 se genere mi archivo txt.



opciones ?... [creo que] existen suficientes alternativas :D... solo que haria falta conocer algunos otros detalles como:
- 'tipo' de archivo de texto 'generable' ?
- sera SIEMPRE 'hasta' la fila 10,000 ?
- y quizas algunos otros mas -?-

en via de mientras, el siguiente codigo [de ejemplo] hace +/- lo que solicitas ;)
'ajusta' donde corresponda la ruta y el nombre y el 'tipo' de archivo [de texto] que se genera
[y... no tiene prevencion/correccion de -posibles- errores como si ya existiera el nombre del archivo] :-(

si cualquier duda [o informacion adicional]... comenas ?
saludos,
hector.

== en un modulo de codigo normal =Sub Genera_Txt()
Dim Ruta As String, Archivo As String
Ruta = "c:uta y\sub-carpetas\donde se guardara el\"
Archivo = "nombre del archivo"
With Workbooks.Add
ThisWorkbook.Worksheets("hoja1").Range("a:d,g:h,x:ab").Copy
With .Worksheets(1)
.Range("a1").PasteSpecial xlPasteValues
.Rows("1:5").EntireRow.Delete
End With
.SaveAs FileName:=Ruta & Archivo, FileFormat:=xlTextWindows
.Close False
End With
End Sub
Respuesta Responder a este mensaje
#2 GR
04/07/2006 - 16:21 | Informe spam
Hector Miguel, gracias por tu apoyo, quisiera generar un archivo txt pero
separado con pipes, en que parte de la macro que me pasastes le modifico,
veras quisiera hacer un archivo txt como el que pide el sat para las
declaraciones informativas aqui en Mexico.

Reitero mi agradecimiento por tu ayuda, que tengas buen dia.

"Héctor Miguel" escribió:

hola, 'anomimo/a' !

> Como seria el codigo para generar un archivo txt, es decir
> quisiera que la columna A,B,C,D,G,H,X,Y,Z,AA,AB FILA 5 HASTA LA 10,000 se genere mi archivo txt.

opciones ?... [creo que] existen suficientes alternativas :D... solo que haria falta conocer algunos otros detalles como:
- 'tipo' de archivo de texto 'generable' ?
- sera SIEMPRE 'hasta' la fila 10,000 ?
- y quizas algunos otros mas -?-

en via de mientras, el siguiente codigo [de ejemplo] hace +/- lo que solicitas ;)
'ajusta' donde corresponda la ruta y el nombre y el 'tipo' de archivo [de texto] que se genera
[y... no tiene prevencion/correccion de -posibles- errores como si ya existiera el nombre del archivo] :-(

si cualquier duda [o informacion adicional]... comenas ?
saludos,
hector.

== en un modulo de codigo normal => Sub Genera_Txt()
Dim Ruta As String, Archivo As String
Ruta = "c:uta y\sub-carpetas\donde se guardara el\"
Archivo = "nombre del archivo"
With Workbooks.Add
ThisWorkbook.Worksheets("hoja1").Range("a:d,g:h,x:ab").Copy
With .Worksheets(1)
.Range("a1").PasteSpecial xlPasteValues
.Rows("1:5").EntireRow.Delete
End With
.SaveAs FileName:=Ruta & Archivo, FileFormat:=xlTextWindows
.Close False
End With
End Sub



Respuesta Responder a este mensaje
#3 Héctor Miguel
04/07/2006 - 21:39 | Informe spam
hola, 'anonimo/a' !

... quisiera generar un archivo txt pero separado con pipes, en que parte de la macro que me pasastes le modifico [...]



prueba con la siguiente macro y 'revisa' el archivo que 'genera' [obviamente] puedes cambiar:
el nombre y la ruta [del archivo 'a generar'], la hoja y el rango ['a tomar de'] y el caracter delimitador.

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
en un modulo de codigo 'normal' ==Sub ExportarTextoDelimitado()
Application.ScreenUpdating = False
Dim Archivo As String, Delimita As String, A_num As Integer, _
Fila As Long, Fila_1 As Long, Fila_n As Long, _
Col As Integer, Col_1 As Integer, Col_n As Integer, _
Linea As String, Celda As String
Archivo = "c:uta y\sub-carpetas\donde se guardara elombre del archivo.txt"
Delimita = "|"
On Error GoTo Salida:
A_num = FreeFile
With ActiveSheet.UsedRange
Fila_1 = .Cells(1).Row
Col_1 = .Cells(1).Column
Fila_n = .Cells(.Cells.Count).Row
Col_n = .Cells(.Cells.Count).Column
End With
Open Archivo For Output Access Write As #A_num
For Fila = Fila_1 To Fila_n
Linea = ""
For Col = Col_1 To Col_n
If Cells(Fila, Col).Value <> "" _
Then Celda = Application.Text(Cells(Fila, Col), Cells(Fila, Col).NumberFormat) _
Else Celda = ""
Linea = Linea & Celda & Delimita
Next
Linea = Left(Linea, Len(Linea) - Len(Delimita)) & String(2, Delimita)
Print #A_num, Linea
Next
Salida:
On Error GoTo 0
Close #A_num
End Sub
Respuesta Responder a este mensaje
#4 GR
05/07/2006 - 01:15 | Informe spam
Gracias Hector Miguel cualquier duda te estare molestando, que tengas buen dia

"Héctor Miguel" escribió:

hola, 'anonimo/a' !

> ... quisiera generar un archivo txt pero separado con pipes, en que parte de la macro que me pasastes le modifico [...]

prueba con la siguiente macro y 'revisa' el archivo que 'genera' [obviamente] puedes cambiar:
el nombre y la ruta [del archivo 'a generar'], la hoja y el rango ['a tomar de'] y el caracter delimitador.

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
en un modulo de codigo 'normal' ==> Sub ExportarTextoDelimitado()
Application.ScreenUpdating = False
Dim Archivo As String, Delimita As String, A_num As Integer, _
Fila As Long, Fila_1 As Long, Fila_n As Long, _
Col As Integer, Col_1 As Integer, Col_n As Integer, _
Linea As String, Celda As String
Archivo = "c:uta y\sub-carpetas\donde se guardara elombre del archivo.txt"
Delimita = "|"
On Error GoTo Salida:
A_num = FreeFile
With ActiveSheet.UsedRange
Fila_1 = .Cells(1).Row
Col_1 = .Cells(1).Column
Fila_n = .Cells(.Cells.Count).Row
Col_n = .Cells(.Cells.Count).Column
End With
Open Archivo For Output Access Write As #A_num
For Fila = Fila_1 To Fila_n
Linea = ""
For Col = Col_1 To Col_n
If Cells(Fila, Col).Value <> "" _
Then Celda = Application.Text(Cells(Fila, Col), Cells(Fila, Col).NumberFormat) _
Else Celda = ""
Linea = Linea & Celda & Delimita
Next
Linea = Left(Linea, Len(Linea) - Len(Delimita)) & String(2, Delimita)
Print #A_num, Linea
Next
Salida:
On Error GoTo 0
Close #A_num
End Sub



Respuesta Responder a este mensaje
#5 Rodrigo
05/07/2006 - 21:58 | Informe spam
Héctor Miguel ha escrito:

hola, 'anonimo/a' !

> ... quisiera generar un archivo txt pero separado con pipes, en que parte de la macro que me pasastes le modifico [...]

prueba con la siguiente macro y 'revisa' el archivo que 'genera' [obviamente] puedes cambiar:
el nombre y la ruta [del archivo 'a generar'], la hoja y el rango ['a tomar de'] y el caracter delimitador.

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
en un modulo de codigo 'normal' ==> Sub ExportarTextoDelimitado()
Application.ScreenUpdating = False
Dim Archivo As String, Delimita As String, A_num As Integer, _
Fila As Long, Fila_1 As Long, Fila_n As Long, _
Col As Integer, Col_1 As Integer, Col_n As Integer, _
Linea As String, Celda As String
Archivo = "c:uta y\sub-carpetas\donde se guardara elombre del archivo.txt"
Delimita = "|"
On Error GoTo Salida:
A_num = FreeFile
With ActiveSheet.UsedRange
Fila_1 = .Cells(1).Row
Col_1 = .Cells(1).Column
Fila_n = .Cells(.Cells.Count).Row
Col_n = .Cells(.Cells.Count).Column
End With
Open Archivo For Output Access Write As #A_num
For Fila = Fila_1 To Fila_n
Linea = ""
For Col = Col_1 To Col_n
If Cells(Fila, Col).Value <> "" _
Then Celda = Application.Text(Cells(Fila, Col), Cells(Fila, Col).NumberFormat) _
Else Celda = ""
Linea = Linea & Celda & Delimita
Next
Linea = Left(Linea, Len(Linea) - Len(Delimita)) & String(2, Delimita)
Print #A_num, Linea
Next
Salida:
On Error GoTo 0
Close #A_num
End Sub



Estimado hector:

La verdad que yo también necesito generar un txt a partir de un excel.
Yo no soy experto en programación ni tampoco en macros.
Pero mi formato para el txt es como este:
EJ:
Rutproveedor;Monto anual iva compras;MontoIva
retenido;Cantidadocumentos;MontoNota credito;CantidadN. credito;Moto
iva ventas;MontoIva no retenido;Cantidad documentos;MontoIva por
notas;CantidadN.C. eliminadas;Indicador

esperando una buena respuesta

garcias
Rodrigo O'
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida