separar texto (segun la primera linea)

4 envíos / 0 nuevos
Último envío
Rayner Velez
Imagen de Rayner Velez
Offline
última acción: Hace 4 años 10 meses
alta: 24/06/2018 - 18:23
Puntos: 265
separar texto (segun la primera linea)

mucho agradecere que alguien me de una mano con este problema

 

necesito que por medio de una macro (boton)

esta informacion que esta en una columna

(no tiene ningun separador. )

la macro me la separe segun el campo (1ra linea)

este campo varia, segun la informacion que extraigo de otra aplicacion

 

lo estaba haciendo con la herramienta separador de texto

pero me ralentiza el trabajo ya que son muchos archivos

diferentes pero con el mismo esquema

 

a continuacion ejemplo de como deberia quedar separado en cada columna

 

pos

material

texto breve

cantidad

ump

Proveedor/Centro suministrador (esta ultima va unido el codigo + nombre)

 

adjunto ejemplo 

 

hoja 1 

aqui debo importar la informacion ya separada

 

hoja 2 

ejemplo de unos de los archivos

esta en una sola colimna la infor

AdjuntoTamaño
File ejemplo 113.35 KB
File ejemplo 220.71 KB

Etiquetas: 

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Dices que no hay separador,

Dices que no hay separador, pero parece claro que hay dos espacios seguidos entre cada dos valores, excepto en algún caso en que solo hay un espacio.

Yo lo que haría (de hecho así lo hago, pues me encuentro habitualmente con este mismo problema) es ir separando los datos uno a uno utilizando LEFT y INSTR. Así te vas quedando con los valores uno a uno desde la izquierda. Al final, lo que te queda a la derecha es el texto, que también tiene espacios entre medias, pero que ya no los buscas.

Un saludo

Rayner Velez
Imagen de Rayner Velez
Offline
última acción: Hace 4 años 10 meses
alta: 24/06/2018 - 18:23
Puntos: 265
Crosn, es correcta la

Crosn, es correcta la observacion, (el unico separador es el espacio)

sin embargo, se complica al hacer la macro, ya que cada archivo es diferente y varia la dimencion de los campos (descripcion y proveedores) es por eso que necesito la macro .. que haga referencia a la linea 1 donde estan los campos definidos

 

si tu dieces que tienes la solucion,,, agradeceria que adjunte un ejemplo

gracias

Rayner VZ

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Bueno, te he dicho que la

Bueno, te he dicho que la solución se hace con LEFT y con INSTR. Obviamente, INSTR sirve para darle a LEFT los parámetros, pues no puedes quedarte siempre con la misma cantidad de caracteres.

En ocasiones me ha funcionado una macro que hace una importación de texto en columnas, que es lo mismo que harías manualmente en la pestaña Datos|Texto en columnas. En tu primer ejemplo quedaría algo así como:

Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(5, 1), Array(17, 1), Array(57, 1), Array(67, 1), _
        Array(71, 1), Array(82, 1)), TrailingMinusNumbers:=True

Y en tu segundo ejemplo sería:

Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(12, 1), Array(21, 1), Array(30, 1), Array(37, 1), _
        Array(46, 1), Array(52, 1), Array(55, 1), Array(59, 1), Array(64, 1), Array(76, 1), Array( _
        89, 1), Array(99, 1), Array(109, 1)), TrailingMinusNumbers:=True

Obviamente, la grabación tal cual no te sirve, luego tienes que adaptar el código a lo que finalmente necesitas. Por ejemplo, detectar qué tipo de archivo es, desde dónde hasta dónde debes aplicar esta división... En ocasiones he tenido que extraer una información antes de dividir en columnas. Como te digo, cada archivo es un mundo.

En cuanto a lo de adjuntar un ejemplo, estamos hablando de código adaptado especialmente a tu archivo fuente de datos y a sus variaciones. Normalmente es algo que me lleva cerca de una mañana de trabajo y por lo que me suelen pagar.

No obstante, si lo que quieres es aprender a hacerlo, no tengo ningún inconveniente en ayudarte con algunas indicaciones y con respuestas a las dudas concretas que puedas tener.