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
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
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
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
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.