Excel - Guardar en formato TXT

 
Vista:
sin imagen de perfil

Guardar en formato TXT

Publicado por Dartio (92 intervenciones) el 12/07/2014 23:39:05
Amigos, tengo unta tabla y quisiera ver la forma de como poder guardar la misma en formato *.TXT mediante una Macro
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

Guardar en formato TXT

Publicado por JuanC (1237 intervenciones) el 13/07/2014 00:23:54
hace muchos años hice esto...
exporta los campos de la tabla con un ancho fijo...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Option Explicit
Option Private Module
Option Base 1
 
Sub test()
Dim sLine$, i As Byte, sTmp$
Dim iSize(15) As Integer
Dim c As Object, rng As Range
 
'//Define tamaño de cada campo
iSize(1) = 9
iSize(2) = 30
iSize(3) = 10
iSize(4) = 10
iSize(5) = 10
 
iSize(6) = 10
iSize(7) = 10
iSize(8) = 10
iSize(9) = 10
iSize(10) = 10
 
iSize(11) = 10
iSize(12) = 10
iSize(13) = 10
iSize(14) = 10
iSize(15) = 10
 
'//Rango de datos (sólo la primer columna de la tabla)
Set rng = Range("A2:A3")
 
'//Recorre toda la columna
For Each c In rng
    sLine = ""
    With c
         '//Construye la línea con cada valor de celda
         For i = 1 To 15
             sTmp = UCase(.Offset(0, i - 1).Value) '//Mayúscula
             '//Ajusta ancho de campo
             If Len(sTmp) < iSize(i) Then
                sTmp = sTmp & Space(iSize(i) - Len(sTmp))
             ElseIf Len(sTmp) > iSize(i) Then
                    sTmp = Mid(sTmp, 1, iSize(i))
             End If
             sLine = sLine & sTmp & "|" '//Separador de lista
         Next
    End With
    sLine = Mid(sLine, 1, Len(sLine) - 1) '//Elimina último separador
    Call Line2File(sLine) '//Graba línea en archivo
Next
 
Set rng = Nothing
Set c = Nothing
End Sub
 
Private Sub Line2File(ByVal sLine As String)
Dim hFile%
hFile = FreeFile
Open "C:\Documents and Settings\User\Escritorio\test.txt" For Append As #hFile
Print #hFile, sLine
Close #hFile
End Sub

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Guardar en formato TXT

Publicado por Dario (92 intervenciones) el 19/07/2014 15:41:55
Amigo, gracias por tu repuesta.
Sinceramente mucho no leentiendo a la codificación. Lo que puedo ver es que en la misma codificación ya asignas la cantidad de caracteres para cada rango.

Lo que tengo es una celda ya determinada con los espacios. Ahora quisiera hacer una macro la cual me copie dicha celda y que me genere un archivo TXT con la información de la celda copiada.

Gracias por tu atención
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar