Saltar al contenido

Ayuda funcion concatenar


Recommended Posts

publicado

Buenas,

 

Quisiera poder arreglar una función en vba que me permite concatenar en comas las celdas seleccionadas.

El problema es que al concatenar, aparece un espacio antes de cada coma.

 

Necesito que no aparezca la coma, en el adjunto muestro el resultado deseado.

 

Function CONCATENARCELDAS(rango As Range)

For Each celda In rango.Cells

    If celda.Value <> "" Then
        resultado = resultado & ", " & celda.Value
    End If
    
Next celda

resultado = Right(resultado, Len(resultado) - 2)

CONCATENARCELDAS = resultado




End Function

CONCATENAR.xlsm

 

 

Saludos.!

publicado

Hola @manzano, puede probar asi:

Function CONCATENARCELDAS(rango As Variant)

CONCATENARCELDAS = Join(Application.Transpose(Application.Transpose(rango)), ",")

End Function

Comentas, saludos.

publicado

Hola AlexanderS, gracias por la respuesta.

Efectivamente tu código me funciono, pero tengo el problema de que solo puedo concatenar en horizontal, si lo hago en vertical, me arroja error, cosa que con el primer código no pasa.

 

Aver si me ayudas con eso pls, saludos!

publicado

hola!

 

espero te sirva, solo se modifico la parte de        

resultado = resultado & "," & celda.Value le quite el espacio y

resultado = Right(resultado, Len(resultado) - 1) en el 1 tenia 2

quedando de la siguiente manera:

 

Function CONCATENARCELDAS(rango As Range)

For Each celda In rango.Cells

    If celda.Value <> "" Then
        resultado = resultado & "," & celda.Value
    End If
    
Next celda

resultado = Right(resultado, Len(resultado) - 1)

CONCATENARCELDAS = resultado


End Function
 

publicado
Hace 4 horas, manzano dijo:

Hola AlexanderS, gracias por la respuesta.

Efectivamente tu código me funciono, pero tengo el problema de que solo puedo concatenar en horizontal, si lo hago en vertical, me arroja error, cosa que con el primer código no pasa.

 

Aver si me ayudas con eso pls, saludos!

Hola, para mi código esta es la solución:

Function CONCATENARCELDAS(rango As Variant)

On Error GoTo er
CONCATENARCELDAS = Join(Application.Transpose(Application.Transpose(rango)), ",")

Exit Function
er:
CONCATENARCELDAS = Join(Application.Transpose(rango), ",")

End Function

Saludos

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.