Salto de línea en celda

29/03/2009 - 05:10 por Juan Martín | Informe spam
Hola a todos:

Quisiera que me ayuden con lo siguiente:

Tengo un listado en el que en una de las columnas tengo varios datos
separado por un salto de línea, por ejemplo, Celda B2 tiene "Empleados",
"Contratados", Practicantes" y "Obreros", cada uno debajo del otro por el
salto de línea que le dí.

Lo que quisiera es que ese dato, se copie en otra hoja, pero no en la misma
celda, sino, cada dato en una celda distinta, una debajo de la otra, en este
caso en 4 celdas, ya que son 4 datos.

Ojalá haya sido claro y me puedan entender y ayudar.

Muchas gracias.

Saludos a todos,

Preguntas similare

Leer las respuestas

#1 Francisco Mty
29/03/2009 - 06:22 | Informe spam
Algo simple que te puede ayudar ...

Sub extrae()
For i = 1 To Len(Range("a1").Value)
paso = Val(Mid(Range("a1").Value, i, 1))
If paso <> "0" Then cadena = cadena & Val(Mid(Range("a1").Value, i, 1))
Debug.Print cadena
Next
For j = 1 To Len(cadena)
'Cells(j, 2).Value = Mid(cadena, j, 1)
Debug.Print Mid(cadena, j, 1)
Next
End Sub





"Juan Martín" wrote in message
news:
Hola a todos:

Quisiera que me ayuden con lo siguiente:

Tengo un listado en el que en una de las columnas tengo varios datos
separado por un salto de línea, por ejemplo, Celda B2 tiene "Empleados",
"Contratados", Practicantes" y "Obreros", cada uno debajo del otro por el
salto de línea que le dí.

Lo que quisiera es que ese dato, se copie en otra hoja, pero no en la
misma
celda, sino, cada dato en una celda distinta, una debajo de la otra, en
este
caso en 4 celdas, ya que son 4 datos.

Ojalá haya sido claro y me puedan entender y ayudar.

Muchas gracias.

Saludos a todos,

Respuesta Responder a este mensaje
#2 Héctor Miguel
29/03/2009 - 07:57 | Informe spam
hola, Juan Martín !

Tengo un listado en el que en una de las columnas tengo varios datos separado por un salto de linea
por ejemplo, Celda B2 tiene "Empleados", "Contratados", Practicantes" y "Obreros"
cada uno debajo del otro por el salto de linea que le di.
Lo que quisiera es que ese dato, se copie en otra hoja, pero no en la misma celda
sino, cada dato en una celda distinta, una debajo de la otra, en este caso en 4 celdas, ya que son 4 datos...



asumiendo que "la otra hoja" es la hoja2... y que lo necesitas en la misma columna (B)...
y que no siempre serian 4 datos (por lo que habria que recorrer cada una de las celdas en la hoja original) -???-
prueba con una macro +/- como la siguiente (excel 2000 en adelante):

Sub Separa_Lineas()
Dim Fila As Integer, Cadenas
For Fila = 2 To [b65536].End(xlUp).Row
Cadenas = Split(Range("b" & Fila).Text, Chr(10))
Worksheets("hoja2").Range("b" & Fila).Resize(, UBound(Cadenas) + 1).Value = Cadenas
Next
End Sub

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Juan Martín
30/03/2009 - 06:40 | Informe spam
Muchas gracias
Respuesta Responder a este mensaje
#4 Juan Martín
30/03/2009 - 06:45 | Informe spam
Hola Héctor Miguel:

Como siempre ayudándome en mis problemas.

Muchas gracias.

Sólo una cosa, la macro está bien, sería perfecta, si en vez de poner los
datos en horizontal, los pone en vertical, necesito que estén uno debajo de
otro.

Por otro lado a ver si me explicas un poco eso de la fila donde está Split,
creo que captura toda una celda en formato lineal, pero el chr(10) no entendí
por qué iba.

También el Resize luego del paréntesis está vacio seguido de una coma,
entiendo que porque lo pusiste horizontal no necesitabas modificarlo, pero
luego pones el Ubound, a ver si me ayudas a entenderlo.

Muchas gracias nuevamente.

Saludos,

Juan Martín


"Héctor Miguel" escribió:

hola, Juan Martín !

> Tengo un listado en el que en una de las columnas tengo varios datos separado por un salto de linea
> por ejemplo, Celda B2 tiene "Empleados", "Contratados", Practicantes" y "Obreros"
> cada uno debajo del otro por el salto de linea que le di.
> Lo que quisiera es que ese dato, se copie en otra hoja, pero no en la misma celda
> sino, cada dato en una celda distinta, una debajo de la otra, en este caso en 4 celdas, ya que son 4 datos...

asumiendo que "la otra hoja" es la hoja2... y que lo necesitas en la misma columna (B)...
y que no siempre serian 4 datos (por lo que habria que recorrer cada una de las celdas en la hoja original) -???-
prueba con una macro +/- como la siguiente (excel 2000 en adelante):

Sub Separa_Lineas()
Dim Fila As Integer, Cadenas
For Fila = 2 To [b65536].End(xlUp).Row
Cadenas = Split(Range("b" & Fila).Text, Chr(10))
Worksheets("hoja2").Range("b" & Fila).Resize(, UBound(Cadenas) + 1).Value = Cadenas
Next
End Sub

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.



Respuesta Responder a este mensaje
#5 Héctor Miguel
30/03/2009 - 07:27 | Informe spam
hola, Juan Martín !

__ 1 __
Solo una cosa... si en vez de poner los datos en horizontal, los pone en vertical, necesito... uno debajo de otro.


__ 2 __
... la fila donde esta Split, creo que captura toda una celda en formato lineal, pero el chr(10) no entendi por que iba.


__ 3 __
... el Resize luego del parentesis esta vacio seguido de una coma
entiendo que porque lo pusiste horizontal no necesitabas modificarlo
pero luego pones el Ubound, a ver si me ayudas a entenderlo.



1) oops, tienes razon, perdi de vista en tu consulta original este detalle ("... una debajo de la otra...") :-((

2) el chr(10) es el caracter que identifica un "salto de linea" (alt + enter) en un texto dentro de una celda
y es el argumento con el que la funcion (split) separa de cada celda el numero de lineas

3) el ubound cuenta los elementos en la matriz que devuelve la funcion split (uno por el final de la cadena)

la macro cambia +/- a la siguiente:

Sub Separa_Lineas()
Dim Fila As Integer, Cadenas
For Fila = 2 To [b65536].End(xlUp).Row
Cadenas = Split(Range("b" & Fila).Text, Chr(10))
Worksheets("hoja2").Range("b65536").End(xlUp).Offset(1) _
.Resize(UBound(Cadenas) + 1).Value = Application.Transpose(Cadenas)
Next
End Sub

saludos,
hector.

__ OP __
Tengo un listado en el que en una de las columnas tengo varios datos separado por un salto de linea
por ejemplo, Celda B2 tiene "Empleados", "Contratados", Practicantes" y "Obreros"
cada uno debajo del otro por el salto de linea que le di.
Lo que quisiera es que ese dato, se copie en otra hoja, pero no en la misma celda
sino, cada dato en una celda distinta, una debajo de la otra, en este caso en 4 celdas, ya que son 4 datos...



asumiendo que "la otra hoja" es la hoja2... y que lo necesitas en la misma columna (B)...
y que no siempre serian 4 datos (por lo que habria que recorrer cada una de las celdas en la hoja original) -???-
prueba con una macro +/- como la siguiente (excel 2000 en adelante):

Sub Separa_Lineas()
Dim Fila As Integer, Cadenas
For Fila = 2 To [b65536].End(xlUp).Row
Cadenas = Split(Range("b" & Fila).Text, Chr(10))
Worksheets("hoja2").Range("b" & Fila).Resize(, UBound(Cadenas) + 1).Value = Cadenas
Next
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida