Archivo de texto con VB

13/04/2004 - 19:14 por Jaime | Informe spam
Saludos a todos
Expongo mi caso y agradezco su ayuda.
tengo una hoja la cual contiene ciertos datos los cuales
por medio de una macro lo envio a un archivo de texto ,
lo que deseo hacer es que me al momento de abrir el
archivo de texto me aparezcan de la siguiente manera:

FECHA NUMERO IMPORTE CONCEPTO
01/04/04 123456 560.80 MOVTO ABRIL
02/04/04 123457 1230.60 MOVTO ABRIL

el detalle es que me acomoda los datos asi:

FECHA NUMERO IMPORTE CONCEPTO
01/04/04 123456 560.80 MOVTO ABRIL
02/04/04 123457 1230.60 MOVTO ABRIL


el detalle esta en la columna importe,los numeros me los
ordena de izq. a derecha y por lo cual los sig. campos me
los mueve dependiendo el importe
lo he guardado con archivo con tabulaciones,
archivo .csv, archivo de ancho fijo, y con la macro que
tengo solo me permite dar espacios entres columnas,
.

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
13/04/2004 - 20:04 | Informe spam
Sin ver el código es difícil precisar la respuesta. Lo que se suele hacer en situaciones semejantes es igualar el número de caracteres con algo como:

Len(Right(String(15, " ") & Worksheets("Hoja1").Range("A1"), 15))

con esta instrucción, el largo sería siempre de 15. La diferencia entre la longitud del número y los 15 caracteres se rellenaría con espacios a la izquierda del número.
Un saludo.


Fernando Arroyo
MS MVP - Excel



"Jaime" escribió en el mensaje news:1bef401c4217a$cf5557e0$
Saludos a todos
Expongo mi caso y agradezco su ayuda.
tengo una hoja la cual contiene ciertos datos los cuales
por medio de una macro lo envio a un archivo de texto ,
lo que deseo hacer es que me al momento de abrir el
archivo de texto me aparezcan de la siguiente manera:

FECHA NUMERO IMPORTE CONCEPTO
01/04/04 123456 560.80 MOVTO ABRIL
02/04/04 123457 1230.60 MOVTO ABRIL

el detalle es que me acomoda los datos asi:

FECHA NUMERO IMPORTE CONCEPTO
01/04/04 123456 560.80 MOVTO ABRIL
02/04/04 123457 1230.60 MOVTO ABRIL


el detalle esta en la columna importe,los numeros me los
ordena de izq. a derecha y por lo cual los sig. campos me
los mueve dependiendo el importe
lo he guardado con archivo con tabulaciones,
archivo .csv, archivo de ancho fijo, y con la macro que
tengo solo me permite dar espacios entres columnas,
.


Respuesta Responder a este mensaje
#2 Víctor
13/04/2004 - 20:25 | Informe spam
Intenta exportar los datos desde una nueva hoja,
formulada a partir de la que tienes ahora.

Inserta una hoja nueva y coloca estas fórmulas:

En A2: =Hoja1!A2
En B2: =Hoja1!B2
En C2: =TEXTO(Hoja1!C2;"0,00")

Si no te funciona, prueba a cambiar la fórmula de C2 por
esta otra:
=TEXTO(Hoja1!C2;"0000000000,00")
En este caso, te añadirá ceros a la izquierda hasta
completar el número que sea, perfectamente apoyado a la
derecha. No sé si este comportamiento va bien a tus
necesidades.

Atención con mi separador de argumentos que es ; y , para
decimales.

Si no resuelves el problema, vuelve a escribir. Seguro
que encontramos la solución.

:-)


Saludos a todos
Expongo mi caso y agradezco su ayuda.
tengo una hoja la cual contiene ciertos datos los cuales
por medio de una macro lo envio a un archivo de texto ,
lo que deseo hacer es que me al momento de abrir el
archivo de texto me aparezcan de la siguiente manera:

FECHA NUMERO IMPORTE CONCEPTO
01/04/04 123456 560.80 MOVTO ABRIL
02/04/04 123457 1230.60 MOVTO ABRIL

el detalle es que me acomoda los datos asi:

FECHA NUMERO IMPORTE CONCEPTO
01/04/04 123456 560.80 MOVTO ABRIL
02/04/04 123457 1230.60 MOVTO ABRIL


el detalle esta en la columna importe,los numeros me los
ordena de izq. a derecha y por lo cual los sig. campos


me
los mueve dependiendo el importe
lo he guardado con archivo con tabulaciones,
archivo .csv, archivo de ancho fijo, y con la macro que
tengo solo me permite dar espacios entres columnas,
..


.

Respuesta Responder a este mensaje
#3 Jaime
14/04/2004 - 02:11 | Informe spam
Gracias por su respuesta Victor y Fernando , aqui les
pongo el codigo con el cual exporto la informacion a un
archivo de texto espero y con esto puedan apoyarme

Sub ExportarDelimitado()
Dim HojaPol As Worksheet
Dim intFich As Integer, lngNumReg As Long, strCad As
String, strCar As String * 1
Dim lngContL As Long, intContC As Integer, N As Long

Set HojaPol = Worksheets("polcont") 'Hoja donde están
los datos

intFich = FreeFile(0)
lngContL = 1 'Se empezará a exportar en la fila 2 (se
entiende que la 1ª es de títulos)
intContC = 6 'Se exportarán las columnas 1 a 6

If Dir("C:\Fichero.txt") <> "" Then Kill
("C:\Fichero.txt") 'Si ya existe C:\Fichero.txt, lo borra.
Open "C:\Fichero.txt" For Random As intFich Len = 1

While Not IsEmpty(HojaPol.Cells(lngContL, 1))

For N = 1 To intContC
strCad = strCad & Format(HojaPol.Cells
(lngContL, N), HojaPol.Cells(lngContL, N).NumberFormat)
& " "
Next N

strCad = Left(strCad, Len(strCad) - 1) &
vbNewLine 'Para quitar el último delimitador por la
derecha y añadir el salto de línea

For N = 1 To Len(strCad)
strCar = Mid(strCad, N, 1)
lngNumReg = lngNumReg + 1
Put intFich, lngNumReg, strCar
Next N

lngContL = lngContL + 1
strCad = ""
Wend

Close intFich

Set HojaPol = Nothing
End Sub



Sin ver el código es difícil precisar la respuesta. Lo


que se suele hacer en situaciones semejantes es igualar
el número de caracteres con algo como:

Len(Right(String(15, " ") & Worksheets("Hoja1").Range


("A1"), 15))

con esta instrucción, el largo sería siempre de 15. La


diferencia entre la longitud del número y los 15
caracteres se rellenaría con espacios a la izquierda del
número.
Un saludo.


Fernando Arroyo
MS MVP - Excel
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida