Macro en Excel extraer de .txt y separar en hojas

Tengo que estraer un texto de un fichero txt y pegarlo en excel separado por columnas. La MACRO que he usado es la siguiente:

Sub ejemplo()
mio = ActiveWorkbook.Name
ruta = ActiveWorkbook.Path
ChDir ruta & "\"
archi = Dir("*.txt")
Do While archi <> ""
Workbooks.OpenText archi, origin:=xlWindows, startrow:=1, DataType:=xlDelimited
otro = ActiveWorkbook.Name
Range("a1:a" & Range("a65000").End(xlUp).Row).Copy
Workbooks(mio).Activate
Range("av1").End(xlToLeft).Offset(0, 1).Select
ActiveSheet.Paste
Workbooks(otro).Close False
archi = Dir()
Loop
ActiveSheet.Columns("a:a").EntireColumn.Delete
MsgBox "proceso terminado"
End Sub

Pero una vez que lo tengo en una columna necesito separarlo en columnas y eso lo se hacer. Lo que necesito es pegar en distintas hojas a partir de una palabra. Ejem:

ENTIDAD 1 :

0089098: 8: EUR : G08                                         

ENTIDAD 2 :

0089098: 8: EUR : G08                                                                           

0249098:  8:EUR :0408

ENTIDAD 3 :

0089098: 8: EUR : G08                                                                           

0249098:  8:EUR :0408

0089098: 8: EUR : G08                                                                           

0249098: 8:EUR :0408

Pegar ENTIDAD 1 en una hoja y ENTIDAD 2 en otra y ENTIDAD 3 en otra. Debajo de cada una hay diferentes numero de columna pero todas empiezan por entidad.

Se puede hacer con una MACRO

1

1 respuesta

Respuesta

Lo que podrías hacer allí es colocar un condicional donde diga que si la celda es igual a Entidad te cree un nuevo libro y copias allí esa información.

No se si me he explicado bien, disculpa. Necesito pagarlo en hojas nuevas no en un libro nuevo, pero de todos modos , te importaría ponerme un ejemplo

Gracias+

Si amigo disculpa una hoja nueva. Seria algo así

Verificar = Rango("A" & i).value

Libros = sheets.Count 

if Left(verificar,7) = "ENTIDAD" then

workbooks.add

Libros = Libros + 1

Worksheets(Libros). Activate

'Aqui colocas el resto de el codigo que copia los datos en la hoja

End if

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas