Concatenar celdas Variables

Hola qué tal. Estoy tratando de crear una fórmula que me concatene un rango variable.

Tengo el siguiente código.

Function MULTICONCAT(lista As Range)
Dim ncell As Range
Dim m_concat As String
m_concat =
i = 1
For Each ncell In lista
If ncell <> Then
If i = 1 Then
m_concat = m_concat & ncell.Value & /
Else
m_concat = m_concat & / & ncell.Value
End If
End If
i = i + 1
Next ncell
m_concat = m_concat &
MULTICONCAT = m_concat
End Function

La fórmula funciona bastante bien, el problema es que si la primera celda de mi rango está vacío, la fórmula empieza con una Diagonal.

Alguna Idea de como pueda modificar el código para que no aparezca esta diagonal al principio (y únicamente como separador entre dos valores que si existan?)

1 Respuesta

Respuesta
1

Te dejo el código modificado para que logre lo que pretendes, como veras, es redundante pero al final elimina el separador de más y todo queda solucionado. Quedo pendiente de tu éxito. Saludos

Function MULTICONCAT(lista As Range)
''Modificada por FSerrano en 120312
''Para abb1987 en TodoExpertos.com
''Concatena un rango, separandolo por barras diagonales "/"
Dim ncell As Range
Dim m_concat As String
For Each ncell In lista
     If ncell <> Then
         m_concat = m_concat & / & ncell.Value
     End If
Next ncell
MULTICONCAT = Mid(m_concat, 2, Len(m_concat) - 1)
End Function

NO OLVIDES FINALIZAR Y PUNTUAR LA PREGUNTA

Funciona Muy bien. Excepto al momento en que la concatenación empieza con el valor de la primera celda de mi rango, cuando sucede eso, me borra la primera letra de esa celda.

Hay alguna manera de poner un if, poniendo como condicionante que no elimine el primer carácter si la primera celda tiene algún valor?

Claro que hay un modo, es este:

if Mid(m_concat, 1, 1) = "/" then
    MULTICONCAT = Mid(m_concat, 2, Len(m_concat) - 1)
else
    MULTICONCAT = m_concat
end if

Debes incluir estas lineas entre el Next ncell y el End Function (eliminando la actual); aunque no sé porque ocurre lo que comentas si el proceso debe generar siempre como primer carácter el "/" (por eso mencionaba que era redundante). Revísalo y me cuentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas