Exportar a TXT con caracteres limitados

He utilizado esta macro funciona ok pero me piden un archivo de texto con las siguientes caracteristicas:
Son 5 lineas y cada linea tene unos campos determinados y algunos en blanco
(Y hay que respetar las posiciones porque es para un soft bancario)
Adjunto imagen para que se entienda mejor el formato
[img]http://i64.tinypic.com/54t841.png[/img]

¿Es posible hacerlo?
¿Alguien puede decirme como?
La verdad no entiendo mucho de esto y estoy tratando de buscar en la web pero no doy con la solucion

1

1 respuesta

Respuesta
1

La verdad la imagen no ayuda mucho, quizá si pones una muestra de como tienes los datos en Excel y como deseas que estén en el archivo *.txt podríamos ayudarte mejor. Asumo que lo d ela imagen, la parte "De" y"A" son los números de columna entre los que va cada campo pero, mejor confírmanos eso y hay que asegurar viendo los datos del Excel mejor.

Abraham Valencia

Hola, gracias por responder, te envo un enlace con ejemplo a ver si se comprende

Descargar ejemplo

Se entiende mejor, sí, pero en la imagen hay 15 columnas y en el Excel 14. Asimismo, el largo de lo que supuestamente tiene que tener cada campo, no necesariamente coincide con los datos del Excel. Resueltas esas dudas o mejor dicho, falta de coincidencias, la verdad no está difícil lograr lo que pides.

Abraham Valencia

Ah, por cierto lo ideal, para entender aún mejor, es que los encabezados del Excel coincidan con la imagen.

Abraham Valencia

Si habría que agregar las otras dos columnas en el excel y el total de espacios o caracteres en la línea creo serán 250

Esa imagen es solo de la primera línea, las cabeceras de la segunda línea serian otras
Por eso no puse nada

Creo que no me entendiste; se supone que tu imagen es la guía para saber como debe quedar el archivo de texto y para probar los datos a enviar era importante que coincidan esos encabezados con las respectivas columnas de Excel. Lo haré de memoria, ya tú lo ajustas.

Abraham Valencia

Disculpa y aestoy mareado con este tema, sigo probando cosas ja ja
Lo que pasa es que las cabeceras no tienen que salir en el txt :-)
Gracias de nuevo

Entendí que no se ponían las cabeceras, como comenté, era para asegurar que los datos sean los correcto. Bueno, mira, algo así te será útil, ya es cosa de adaptar cada columna a para que coincida con tus datos:

Sub TxtconTab()
Dim Valor As Variant
Dim x As Integer
Open "D:\Datos2.txt" For Output As 1
For x = 3 To 7
Valor = Range("A" & x & ":O" & x).Value
Print #1, Valor(1, 1); Tab(5); Valor(1, 2); Tab(10); Valor(1, 3); Tab(18); Valor(1, 4); _
Tab(26); Valor(1, 5); Tab(30); Valor(1, 6); Tab(34); Valor(1, 7); Tab(36); Valor(1, 8); _
Tab(46); Valor(1, 9); Tab(56); Valor(1, 10); Tab(59); Valor(1, 11); Tab(60); Valor(1, 12); _
Tab(72); Valor(1, 13); Tab(108); Valor(1, 14); Tab(110); Valor(1, 15)
Next x
Close #1
End Sub

No olvida: He considerado datos de la fila 3 a la 7 así como 15 columnas cada una del ancho, y en el orden, de la imagen.

Comentas

Abraham Valencia

Hola disculpa mi ignorancia pero que es lo que debería cambiar yo,
por ejemplo en la colomna C de la fila 3 la cantidad de caracteres son 8 pero en la mism columna fila 4 es de 2 (en la 5 sera diferente, así en toda la tabla)

Como te comenté, en la imagen había instrucciones que yo he respetado porque dijiste que era para aun software. La clave está en los "Tab". Trata de analizarlo y usa para guiarte la misma imagen que tú has compartido.

Abraham Valencia

Hola, mira creo que ya lo tengo solo me falta que me complete con caracteres en blanco cuando
el texto es menor a lo requerido o solo en esa celda deseen todos los caracteres en blanco.
He realizado la hoja, con la validación de datos por celda y la macro que lo convierte a txt
pero no se como incluir en la macro la formula para cada celda por ejemplo: En la celda A3 solicitan 4 caracteres si la palabra o el numero solo tienen 3 que coloque un espacio en blanco a la derecha, tengo la siguiente formula

=A3 & REPETIR(" "; 4 - LARGO(A3))

SI tu me indicas como ponerlo ya lo hago para cada una de las celdas
Adjunto archivo descargar

Si observas bien, "Tab" hace eso sin necesidad de que pongas espacios en blanco en las celdas. Al llevar los datos al archivo de texto, como se usa "Tab", así un campo anterior no complete los caracteres esperados, deja el espacio en blanco correspondiente. No es necesario hacer más.

Abaham Valencia

Claro pero no lo entiendo , no entiendo como poner los valores para cada fila

A:1, B1:C1 . . . . .  .. O:!
A:2,  . . .  . . . .
ETC

POr ejemplo Valor 1,1; Tab(5)   a que corresponde?

Disculpa pero como no soy programador no se donde tengo qu eir cambiando

Sub TxtconTab()
Dim Valor As Variant
Dim x As Integer
Open "D:\Datos2.txt" For Output As 1
For x = 3 To 7
Valor = Range("A" & x & ":O" & x).Value
Print #1, Valor(1, 1); Tab(5); Valor(1, 2); Tab(10); Valor(1, 3); Tab(18); Valor(1, 4); _
Tab(26); Valor(1, 5); Tab(30); Valor(1, 6); Tab(34); Valor(1, 7); Tab(36); Valor(1, 8); _
Tab(46); Valor(1, 9); Tab(56); Valor(1, 10); Tab(59); Valor(1, 11); Tab(60); Valor(1, 12); _
Tab(72); Valor(1, 13); Tab(108); Valor(1, 14); Tab(110); Valor(1, 15)
Next x
Close #1
End Sub

Mira lo puse con tu ejemplo y me da error

ejemploAbraham

Ahora ando solo en el celular, regreso a mi PC y le doy una mirada a tu nuevo archivo.

Abraham Valencia

Has subido un archivo sin macros. Al colocar la que yo te he enviado no da ningún error

Abraham Valencia

Esta puesto recién lo miro, al darle al botón sale una ventana de error

El macro esta puesto si te fijas en editar macros

Lo que también quiero saber para poder hacerlo es como poner un valor determinado de caracteres a cada celda

A1, B1, ...O1

A7, B7, etc

Ya estoy mareado no se como se ejecuta, yo puse tu código en el lugar del otro
Error al darle al botón crear txt

Editor de Macros

Marcaste como tema "Excel" para hacer tu pregunta pero no estás usando tal programa...

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas