Guardar archivo excel a txt

26/09/2008 - 23:58 por Raul EG | Informe spam
Buen dia a todos:

Mi pregunta el dia de hoy es, como le puedo hacer para guardar un archivo de
excel en txt pero me lo piden separado por este caracter "|" y solo encuentro
separado por espacios o tabulaciones.

Agradeciendo los comentarios al presente quedo a sus ordenes.

Raul Espejel

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
27/09/2008 - 01:56 | Informe spam
hola, Raul !

... para guardar un archivo de excel en txt pero me lo piden separado por este caracter "|" ...



prueba los ejemplos de: -> http://www.mcgimpsey.com/excel/textfiles.html

saludos,
hector.
Respuesta Responder a este mensaje
#2 Raul EG
29/09/2008 - 21:44 | Informe spam
Hector, gracias por tu apunte, encontre esta macro:

Public Sub CharacterSV()
Const DELIMITER As String = "|"
Dim myRecord As Range
Dim myField As Range
Dim nFileNum As Long
Dim sOut As String

nFileNum = FreeFile
Open "Test.txt" For Output As #nFileNum
For Each myRecord In Range("A1:A" & _
Range("A" & Rows.Count).End(xlUp).Row)
With myRecord
For Each myField In Range(.Cells, _
Cells(.Row, Columns.Count).End(xlToLeft))
sOut = sOut & DELIMITER & myField.Text
Next myField
Print #nFileNum, Mid(sOut, 2)
sOut = Empty
End With
Next myRecord
Close #nFileNum
End Sub

Solo que al guardarla solo me trae la primera fila que son los encabezados,
mi rango de datos es de a1 hasta aa20 mas o menos, aunque este dato puede
variar.

"Héctor Miguel" escribió:

hola, Raul !

> ... para guardar un archivo de excel en txt pero me lo piden separado por este caracter "|" ...

prueba los ejemplos de: -> http://www.mcgimpsey.com/excel/textfiles.html

saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
30/09/2008 - 01:46 | Informe spam
hola, Raul !

... encontre esta macro: (...)
Solo que al guardarla solo me trae la primera fila que son los encabezados
mi rango de datos es de a1 hasta aa20 mas o menos, aunque este dato puede variar.



la macro que encontraste "deberia" de funcionar, siempre y cuando se cumpla (o modifiques) lo siguiente:

a) hace un recorrido por cada celda NO VACIA en la columna A (segun esta parte del codigo):
For Each myRecord In Range("A1:A" & _
Range("A" & Rows.Count).End(xlUp).Row)



b) luego, EN cada fila, hace otro recorrido por cada columna (segun esta parte del codigo):
With myRecord
For Each myField In Range(.Cells, _
Cells(.Row, Columns.Count).End(xlToLeft))



en resumen, solo necesitas estar seguro de (o modificar) la columna "inicial" donde se busca la totalidad de tus datos

saludos,
hector.

__ el codigo expuesto __
Public Sub CharacterSV()
Const DELIMITER As String = "|"
Dim myRecord As Range
Dim myField As Range
Dim nFileNum As Long
Dim sOut As String
nFileNum = FreeFile
Open "Test.txt" For Output As #nFileNum
For Each myRecord In Range("A1:A" & _
Range("A" & Rows.Count).End(xlUp).Row)
With myRecord
For Each myField In Range(.Cells, _
Cells(.Row, Columns.Count).End(xlToLeft))
sOut = sOut & DELIMITER & myField.Text
Next myField
Print #nFileNum, Mid(sOut, 2)
sOut = Empty
End With
Next myRecord
Close #nFileNum
End Sub
Respuesta Responder a este mensaje
#4 Raul EG
01/10/2008 - 23:54 | Informe spam
Y bien tenias razon, se me estaba pasando que la primera columna la estaba
enviando sin datos por eso no me toma en cuenta los demas datos.

Saludos, suerte y mil gracias.

"Héctor Miguel" escribió:

hola, Raul !

> ... encontre esta macro: (...)
> Solo que al guardarla solo me trae la primera fila que son los encabezados
> mi rango de datos es de a1 hasta aa20 mas o menos, aunque este dato puede variar.

la macro que encontraste "deberia" de funcionar, siempre y cuando se cumpla (o modifiques) lo siguiente:

a) hace un recorrido por cada celda NO VACIA en la columna A (segun esta parte del codigo):
> For Each myRecord In Range("A1:A" & _
> Range("A" & Rows.Count).End(xlUp).Row)

b) luego, EN cada fila, hace otro recorrido por cada columna (segun esta parte del codigo):
> With myRecord
> For Each myField In Range(.Cells, _
> Cells(.Row, Columns.Count).End(xlToLeft))

en resumen, solo necesitas estar seguro de (o modificar) la columna "inicial" donde se busca la totalidad de tus datos

saludos,
hector.

__ el codigo expuesto __
> Public Sub CharacterSV()
> Const DELIMITER As String = "|"
> Dim myRecord As Range
> Dim myField As Range
> Dim nFileNum As Long
> Dim sOut As String
> nFileNum = FreeFile
> Open "Test.txt" For Output As #nFileNum
> For Each myRecord In Range("A1:A" & _
> Range("A" & Rows.Count).End(xlUp).Row)
> With myRecord
> For Each myField In Range(.Cells, _
> Cells(.Row, Columns.Count).End(xlToLeft))
> sOut = sOut & DELIMITER & myField.Text
> Next myField
> Print #nFileNum, Mid(sOut, 2)
> sOut = Empty
> End With
> Next myRecord
> Close #nFileNum
> End Sub



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida