Cortar rango de datos de archivo txt y pasarlo a excel

Buen dia experto

Me podrías ayudar por favor con una macro para abrir un archivo .txt , seleccionar desde la linea que tenga la palabra Constancia hasta la linea Firma cortar (suprimir) esas lineas y pegarlas en una hoja de excel llamada datos llamada base desde la celda a1 hasta la celda A"x"

Tengo un txt con muchísimas lineas pero rango a cortar (suprimir) del txt empieza con la palabra Constancia y termina con la palabra firma

ejemplo del txt

Constancia de ...

Dato 1 | 5

Dato 2 | 25.78

Dato 3 | 85

Firma

Constancia de ...

Dato 1 | 25
Dato 2 | 100
Dato 3 | 150

Dato 4 | 280

Dato 5 | 244.9678
Firma

Constancia de ...
Dato 1 | 307
Dato 2 | 3.75
Dato 3 | 1.79

Dato 4 | 5.8019
Firma

La versión de excel que uso es la 2003

Espero haberme explicado, quedo a tus ordenes para cualquier duda

Agradezco de antemano tu apoyo y/o ayuda.

Saludos

1 respuesta

Respuesta
1

Te mando una solución, lo que debes hacer es lo siguiente:
Crea un libro en Excel
Crea una hoja con el nombre “texto”
Crea una hoja con el nombre “datos”
Presiona Alt + F11
Elige del Menú: Insertar / Módulo
En el panel copia la Macro
Guarda el archivo como “busca texto”
Ahora para ejecutar la macro:
Debes tener tu archivo en c:\
Ejecuta la macro
Sub buscatxt()
'Creada por Dam
Dim zlinini, zlinfin As Long
Dim archivo As String
archivo = InputBox(Prompt:="Entra archivo:")
Workbooks.OpenText Filename:= _
"C:\" & archivo, Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
Columns("A:A").Select
Selection.Copy
Workbooks("busca texto").Activate
Sheets("texto").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("texto").Select
ufila = Range("A" & Rows.Count).End(xlUp).Row
zlinini = 0
Range("A1").Select
For i = 1 To ufila
zconstancia = Left$(Cells(i, 1), 10)
zfirma = Left$(Cells(i, 1), 5)
If zconstancia = "Constancia" Then
zlinini = ActiveCell.Row
End If
If zlinini <> 0 Then
If zfirma = "Firma" Then
zlinfin = ActiveCell.Row
ActiveSheet.Range("A" & zlinini, "A" & zlinfin).Copy
Sheets("datos").Select
Range("A1").Select
ActiveSheet.Paste
Exit For
End If
End If
ActiveCell.Offset(1, 0).Select
Next i
ActiveCell.Offset(j, 0).Select
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas