Actualización: Función EXCELeINFO CONCATENAR ahora omite celdas en blanco

Ésta función que les comparto es una de las que más uso en mis labores diarias, es por eso que procuro actualizarla constantemente. En esta ocasión y en base a un comentario de un visitante del Blog les comparto una actualización que contiene 2 cambios importantes:

  1. Si el rango seleccionado incluye celdas en blanco, éstas son omitidas del texto resultante.
  2. Ahora la función hace dos validaciones dependiendo de si se define un separador o no, para no causar conflictor en el texto resultante.

Cómo funciona

En este ejemplo la función es llamada EICONCATENAR y cuenta con dos parámetros:

  1. Rango: El conjunto de celdas que la función tomará para unir sus valores.
  2. Separador (opcional) : Caracter que se imprimirá entre cada palabra.

Al usar la función si deseamos podemos usar un caracter separador para que se imprima entre cada palabra, así como en la Figura 1.

image

Figura 1. Función EICONCATENAR con espacio como separador.

Pero como el separador es opcional, no lo usamos si no deseamos, como en la Figura 2.

image

Figura 2. Función EICONCATENAR sin separador.

Código vba de la función

Nombre UDF: EICONCATENAR

Ubicación: Módulo normal.

'---------------------------------------------------------------------------------------
' Module    : Módulo1
' Author    : MVP Excel, Sergio Alejandro Campos
' Date      : 12/01/2015
' Purpose   : Función UDF para concatenar contenido de celdas
'---------------------------------------------------------------------------------------
'
Function EICONCATENAR(Rango As Range, Optional Separador As Variant) As String
Dim t As String
Dim lenTexto As Integer
Application.Volatile
'
For Each Celda In Rango
    If Not IsEmpty(Celda.Value) Then
        If IsMissing(Separador) Then Separador = ""
        t = t & Separador & Celda.Value
    Else
    End If
    '
Next Celda
'
If Separador = "" Then
    '
    EICONCATENAR = t
    '
Else
    '
    lenTexto = Len(t)
    EICONCATENAR = Right(t, lenTexto - 1)
    '
End If
'
End Function

You may also like...