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 Respuesta
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
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
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
- Compartir respuesta