jueves, 13 de septiembre de 2018

VBA: Contar celdas combinadas en un rango

A primeros de marzo de este año publiqué un artículo sobre el objeto .Dictionary (ver aquí).. es un artículo interesante doned se explica a nivel teórico y práctico este interesante objeto de VBA para Excel.

Hoy, continuando el trabajo del post anterior sobre celdas combinadas, aplicaremos el objeto .Dictionary para saber cuántas celdas combinadas existen en un rango seleccionado.

VBA: Contar celdas combinadas en un rango




Insertamos la siguiente 'Function' en un módulo estándar:

Function ContarCombinadas(rango As Range) As Long
Dim celda As Range, direccion As String

Set dicc = CreateObject("Scripting.Dictionary")

'recorremos el rango de celda seleccionado
For Each celda In rango
    'verificamos la propiedad .MergeCells
    'para comprobar si está o no combinada
    If celda.MergeCells = True Then
        'determinamos la dirección de la celda
        direccion = celda.MergeArea.Address
        'y cargamos el diccionario...
        dicc.Item(direccion) = ""
        'o también
        'dicc(direccion) = ""
    End If
Next celda

'acabamos contando los elementos únicos cargados en el dictionary
ContarCombinadas = dicc.Count
End Function



Como veíamos en la imagen anterior, insertamos en una celda de la hoja de cálculo nuestra función:
=ContarCombinadas(A1:H26)

y obtenemos como resultado, para nuestro ejemplo, 4, es decir, cuatro celda combinadas en el rango A1:H26... tal y como necesitábamos.

2 comentarios:

Nota: solo los miembros de este blog pueden publicar comentarios.