Visual Basic para Aplicaciones - pasar archivo de texto a excel

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

pasar archivo de texto a excel

Publicado por harol (2 intervenciones) el 06/04/2017 18:54:37
hola buen día, tengo este archivo en TXT.
01000890306494920170328002000000560111668
02000000000000000003547700500000000470000100000020041EF
02000000000000000007985417300000009917920100000030048EF
02000000000000000112578252200000002112000100000040087EF
02000000000000000103055501200000000640000100000050087EF
02000000000000000004314950900000005442410100000060215EF
02000000000000000000977857100000001195660100000070470EF
02000000000000000002649177800000002463870100000080554EF
02000000000000000000648986200000000640000100000090560EF
02000000000000000001666105200000008937240100000100560EF
02000000000000000003138300900000010304500100000110570EF
02000000000000000000607571300000002129660100000120578EF
02000000000000000006687431700000002300000100000130596EF
02000000000000000001021138200000000704250100000140607EF
09000000013000000000004725751
el cual quiero quiero pasarlo a excel pero utilizando una cabecera que seria la primera linea del archivo, un detalle que seria las otras 13 lineas y por ultimo un pie de pagina que seria la ultima.
tengo un código que encontré en la web que me lo lee todo y me lo trae pero quiero aprender a ubicar los registro del TXT donde yo quiera.
muchas gracias
adjunto código
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

pasar archivo de texto a excel

Publicado por JuanC (565 intervenciones) el 09/04/2017 13:01:15
mismo código modificado... (copia cada fila debajo de la anterior)

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
Sub Import_TXT_Anchofijo()
Dim nFichero%
Dim sCadena$, txt As Variant
Dim fil&, col&
 
nFichero = FreeFile
txt = Application.GetOpenFilename(" Archivos de texto (*.txt), (*.txt)")
 
If txt <> Empty Then
   Open txt For Input As nFichero
 
   fil = 1
   col = 1
 
   Do While Not EOF(nFichero)
      Line Input #nFichero, sCadena
 
      Sheets(1).Cells(fil, col).NumberFormat = "@"  '//Formato de celda 'texto'
      Sheets(1).Cells(fil, col) = sCadena
      fil = fil + 1
   Loop
 
   Close nFichero
End If
End Sub
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
Imágen de perfil de JoaoM
Val: 55
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

pasar archivo de texto a excel

Publicado por JoaoM (58 intervenciones) el 09/04/2017 19:41:53
Hola Juan C

Podria hacerse de forma a que cuando una palabra contenga :(2 puntos, o punto) lo restante de la linea, pase a la celda siguiente
Ej. de frase
Juan C es colaborador de: Foro LWP

En A Juan C es colaborador de: y en B Foro LWP
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

pasar archivo de texto a excel

Publicado por JuanC (565 intervenciones) el 09/04/2017 21:41:49
sí, se puede...

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
Option Explicit
 
Sub Import_TXT_Anchofijo()
Dim nFichero%
Dim sCadena$, txt As Variant
Dim fil&, col&, sDelimiter$, pos%, a$, b$
 
On Error Resume Next
sDelimiter = ":"
nFichero = FreeFile
txt = Application.GetOpenFilename(" Archivos de texto (*.txt), (*.txt)")
 
If txt <> Empty Then
   Open txt For Input As nFichero
 
   fil = 1
   col = 1
 
   Do While Not EOF(nFichero)
      Line Input #nFichero, sCadena
 
      pos = VBA.InStr(1, sCadena, sDelimiter)
      If pos > 0 Then
         a = VBA.Mid(sCadena, 1, pos)
         b = VBA.Mid(sCadena, pos + 1)
         Sheets(1).Cells(fil, col).NumberFormat = "@"
         Sheets(1).Cells(fil, col) = a
         fil = fil + 1
         Sheets(1).Cells(fil, col).NumberFormat = "@"
         Sheets(1).Cells(fil, col) = b
      Else
           Sheets(1).Cells(fil, col).NumberFormat = "@"   '//Formato de celda 'texto'
           Sheets(1).Cells(fil, col) = sCadena
      End If
 
      fil = fil + 1
   Loop
 
   Close nFichero
End If
End Sub
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

pasar archivo de texto a excel

Publicado por harol (2 intervenciones) el 10/04/2017 15:11:57
Buen día
muchas gracias por sus respuestas, pero un no me sirve si ven en query que les adjunte el me separa el archivo a este formato

REG CEDULA VALOR PROCED.PAGO SECUENCIA OFICINA TIPO VR
02 35477005 $ 47,000 01 0000002 0041 EF

lo que necesito es ubicarlo como yo decida en la fila que yo quiera colocar la información ya que esta tiene dos filas que no son del mismo tamaño y por ende me daña formato requerido.
muchas gracias adjunto archivo requerido
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