Macro para separar celdas

Soy nuevo en macros, pero necesito separar una celda por medio de fórmulas o macros, el problema es que la información de la celda tiene varios renglones ej.
D3422 - RALOY - 29MT
10417670 / 80852367 / 100000302513
PIP: 706 (D3422)
In: ok
1000582655 / 30708759 / 4500357487 / 3976433 / A-473
Y cada renglón ubicarlo en una celda diferente

1 respuesta

Respuesta
1
Imagino que el dato: D3422 - RALOY - 29MT está en A1, y lo que necesitas es pasar esta misma información a tres celdas:
A1 D3422
B1 RALOY
C1 29MT
Pero preguntaría como separas estas otras dos( cual quieres que sea el resultado, haz un ejemplo similar al que yo te propuse en el punto anterior):
PIP: 706 (D3422)
In: ok
Perdón, la pregunta no la hice muy clara, tengo la celda y suponiendo la misma información
D3422 - RALOY - 29MT
10417670 / 80852367 / 100000302513
PIP: 706 (D3422)
In: ok
1000582655 / 30708759 / 4500357487 / 3976433 / A-473
Todo se encuentra en la misma celda A1. Y lo que necesito primeramente es saber como separar en celdas cada linea, para su posterior uso, en concreto solo necesitaría separar la primer linea. Mi ejemplo necesitaría que terminara así por ejemplo.
B1:D3422 - RALOY - 29MT
B2:10417670 / 80852367 / 100000302513
B3:706 (D3422)
B4:IN: OK
B5:1000582655 / 30708759 / 4500357487 / 3976433 / A-473
Ademas necesitaría separar la celda B1 y obtener los valor en celdas
C1:D3422
D1:RALOY
E1:29MT
El orden o el lugar no son importantes, pero si necesito los valores para su uso posterior, los delimitadores los podría cambiar no es necesario tenerlos de ese modo
Espero haberme explicado más claramente, gracias
De los datos que pides se puede separar con fórmulas, te paso las fórmulas para separar en C1; D1 y E1 los datos que tienes en A. La idea es que verifiques la sintaxis y tu con más conocimiento de las condiciones a encontrar puedas separar el resto de celdas:
C1 =EXTRAE(A1,1,HALLAR("-",A1,1)-1)
D1 =EXTRAE(A1,HALLAR("-",A1,1)+1,HALLAR("-",A1,HALLAR("-",A1,1)+1)-HALLAR("-",A1,1)-1)
E1 =EXTRAE(A1,HALLAR("-",A1,HALLAR(D1,A1,1))+1,HALLAR(" ",A1,HALLAR("-",A1,HALLAR(D1,A1,1))+1))
Verifica y me avisas.
Se me olvidaba pasarte los códigos para el primer punto:
Sub texto()
Range("A1").Select
Selection.Copy
Range("B1").Select
ActiveSheet.Paste
Selection.TextToColumns Destination:=Range("B1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(20, 1), Array(56, 1), Array(74, 1), Array(82, 1)) _
, TrailingMinusNumbers:=True
Range("C1").Select
Selection.Cut
Range("B2").Select
ActiveSheet.Paste
Range("D1").Select
Selection.Cut
Range("B3").Select
ActiveSheet.Paste
Range("E1").Select
Selection.Cut
Range("b4").Select
ActiveSheet.Paste
Range("F1").Select
Selection.Cut
Range("b5").Select
ActiveSheet.Paste
End Sub
Muchas gracias por la atención, me has ayudado a comprender como hacerlo, nada más que si surgieron un par de conflictos,
Con las fórmulas para C1, D1 esta bien pero en E1 me da
E1= 29MT 10417670,
Me podrías explicar como funciona la forma en que encuentra la cantidad de caracteres que va a buscar la fórmula, porque no la entendí muy bien.
Por ultimo en el macro hay alguna forma de manejar la separación con delimitadores en lugar de en arreglos, porque no siempre voy a tener la misma longitud.
Espero explicarme bien, de cualquier forma muchas gracias por tu ayuda y tu tiempo
Pues la separación de textos no se puede condicionar, es por espacios, y sobre la fórmula de E1 yo la propbe y funciona, en todo caso si te da muchos líos en lugar de ir a buscar en A busca en B y listo:
EXTRAE(B1, HALLAR("-", A1, HALLAR(D1, A1, 1))+1, HALLAR(" ", A1, HALLAR("-", A1, HALLAR(D1, A1, 1))+1))

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas