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

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