Concatenar columnas segudas

15/11/2006 - 15:59 por Alejandro Garcia | Informe spam
Saludos, tengo una duda para ver si alguien me dice si se puede o no:

Deseo concatenar 3 columnas seguidas pero estas columnas pueden ser
cualesquiera, es decir, una hoja puede ser B, C y D y otra hoja, O, P y
Q. Las columnas puden ser variables, lo que deseo es que en la columna
en la cual esta el cursor me concatene las 3 columnas siguientes. Este
codigo lo ingresria por Macro en mi mi libro Personal.xls para usarlo
con cualquier libro abierto.

Gracias y espero haberme expliado bien.

Preguntas similare

Leer las respuestas

#6 Alejandro Garcia
15/11/2006 - 23:08 | Informe spam
David, gracias por la aclaracion no sabia que VBA usa los nombres
ingles independientemente.

Escogi otra solucion que me funcion, vere si puedo tratar de que
seleccione un rango y me aplique la funcion o rutina.

Gracias.

Un comentario, aún cuando veo que has seleccionado la opción de AnSanVal (yo
también lo haría, pero si lo que necesitabas era una función que se
actualizara automáticamente al cambiar los datos, quise darte otra
alternativa):

Sin importar el idioma de tu Office, "debes" utilizar CONCATENATE. Lo que
sucede es que VBA utiliza los nombres de funciones en inglés, aún cuando las
signe a celdas de la hoja. Cuando ejecutes el código y vuelvas a la celda,
verás que la interfaz lo ha traducido al idioma de tu equipo. Si cambias el
nombre de la función por CONCATENAR, Excel no la reconocerá y aún cuando en
pantalla te la muestre correctamente, te reportará el error #¿NOMBRE?...

Saludos cordiales.



"Alejandro Garcia" escribió:

Aplique este codigo pero me sale error: #¿NOMBRE?

Claro que no uso CONCATENATE sino CONCATENAR, lo hago manual y me
funciona bien, pero con la macro sale el error, son los mismos datos y
me da la misma formula pero la macro sale el error.

¿Que será?

Otra opción (modificada un poco de la grabadora de macros):

Sub ConcatenarSiguientes()
ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[1],RC[2],RC[3])"
End Sub

Saludos.



"Alejandro Garcia" escribió:

Saludos, tengo una duda para ver si alguien me dice si se puede o no:

Deseo concatenar 3 columnas seguidas pero estas columnas pueden ser
cualesquiera, es decir, una hoja puede ser B, C y D y otra hoja, O, P y
Q. Las columnas puden ser variables, lo que deseo es que en la columna
en la cual esta el cursor me concatene las 3 columnas siguientes. Este
codigo lo ingresria por Macro en mi mi libro Personal.xls para usarlo
con cualquier libro abierto.

Gracias y espero haberme expliado bien.










Respuesta Responder a este mensaje
#7 Alejandro Garcia
15/11/2006 - 23:11 | Informe spam
Mil gracias AnSalVal, excelente tu aporte.

Prueba con este:

' debes seleccionar solamente las celdas donde vas a escribir.
Sub concatena()
Dim celda As Range
For Each celda In Selection
celda = celda.Offset(0, 1) & celda.Offset(0, 2) & celda.Offset(0, 3)
Next celda
End Sub

Saludos desde Tenerife (España).
*******************************
"Alejandro Garcia" escribió en el mensaje
news:
Se me escapaba algo, el codigo que me funciono trabaja bien pero solo para
una sola celda, pero no si tengo un ranto de celdas seleccionadas. ¿Se
podrá aplicar un codigo que me funcione seleccionado un rango de celdas?.
Es el mismo principio, concatenar las 3 columnas siguientes a la
columna(celdas) seleccionadas.

Gracias.


Respuesta Responder a este mensaje
#8 Alejandro Garcia
16/11/2006 - 17:35 | Informe spam
Se me escapaba algo, el codigo que me funciono trabaja bien pero solo
para una sola celda, pero no si tengo un ranto de celdas seleccionadas.
¿Se podrá aplicar un codigo que me funcione seleccionado un rango de
celdas?. Es el mismo principio, concatenar las 3 columnas siguientes a
la columna(celdas) seleccionadas.

Gracias.
Respuesta Responder a este mensaje
#9 David
16/11/2006 - 17:39 | Informe spam
Un comentario, aún cuando veo que has seleccionado la opción de AnSanVal (yo
también lo haría, pero si lo que necesitabas era una función que se
actualizara automáticamente al cambiar los datos, quise darte otra
alternativa):

Sin importar el idioma de tu Office, "debes" utilizar CONCATENATE. Lo que
sucede es que VBA utiliza los nombres de funciones en inglés, aún cuando las
signe a celdas de la hoja. Cuando ejecutes el código y vuelvas a la celda,
verás que la interfaz lo ha traducido al idioma de tu equipo. Si cambias el
nombre de la función por CONCATENAR, Excel no la reconocerá y aún cuando en
pantalla te la muestre correctamente, te reportará el error #¿NOMBRE?...

Saludos cordiales.



"Alejandro Garcia" escribió:

Aplique este codigo pero me sale error: #¿NOMBRE?

Claro que no uso CONCATENATE sino CONCATENAR, lo hago manual y me
funciona bien, pero con la macro sale el error, son los mismos datos y
me da la misma formula pero la macro sale el error.

¿Que será?

> Otra opción (modificada un poco de la grabadora de macros):
>
> Sub ConcatenarSiguientes()
> ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[1],RC[2],RC[3])"
> End Sub
>
> Saludos.
>
>
>
> "Alejandro Garcia" escribió:
>
>> Saludos, tengo una duda para ver si alguien me dice si se puede o no:
>>
>> Deseo concatenar 3 columnas seguidas pero estas columnas pueden ser
>> cualesquiera, es decir, una hoja puede ser B, C y D y otra hoja, O, P y
>> Q. Las columnas puden ser variables, lo que deseo es que en la columna
>> en la cual esta el cursor me concatene las 3 columnas siguientes. Este
>> codigo lo ingresria por Macro en mi mi libro Personal.xls para usarlo
>> con cualquier libro abierto.
>>
>> Gracias y espero haberme expliado bien.
>>
>>
>>



Respuesta Responder a este mensaje
#10 AnSanVal
16/11/2006 - 18:22 | Informe spam
Prueba con este:

' debes seleccionar solamente las celdas donde vas a escribir.
Sub concatena()
Dim celda As Range
For Each celda In Selection
celda = celda.Offset(0, 1) & celda.Offset(0, 2) & celda.Offset(0, 3)
Next celda
End Sub

Saludos desde Tenerife (España).
*******************************
"Alejandro Garcia" escribió en el mensaje
news:
Se me escapaba algo, el codigo que me funciono trabaja bien pero solo para
una sola celda, pero no si tengo un ranto de celdas seleccionadas. ¿Se
podrá aplicar un codigo que me funcione seleccionado un rango de celdas?.
Es el mismo principio, concatenar las 3 columnas siguientes a la
columna(celdas) seleccionadas.

Gracias.


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida