domingo, abril 21, 2013

Remediar el problema de las celdas combinadas en Excel

Empiezo esta nota por declarar abiertamente y sin remordimientos: detesto la funcionalidad "Combinar y centrar" de Excel. Y no es una cuestión de gustos personales. Ya hemos expuesto parte, y sólo una pequeña parte, de los problemas que genera el uso de Combinar y Centrar (y también mostré las ventajas de usar "centrar en la selección" en el menú Formato de Celdas – Alineación).

Sin embargo y a pesar de ser una de las peores prácticas en Excel, cada tanto recibo archivos plagados de celdas combinadas. Por lo general se trata de archivos de colegas de trabajo que, después de haber invertido horas en crear la hoja, no entienden por qué se dan comportamientos extraños o imprevistos.

Últimamente tuve que rediseñar un cuaderno, con varias hojas, donde el uso de Combinar y Centrar generaba todo tipo de problemas. Dada la cantidad de correcciones a hacer, decidí programar una macro que haga la tarea: encontrar las celdas combinadas y "descombinarlas" (tal vez debería decir deshacer o descomponer).

El código es el siguiente

Sub unmerge_Cells()
    Dim rngCell As Range
   
    'comprobar numero de celdas en la seleccion
    On Error GoTo errOverFlow
    If Selection.Count = 1 Then
        MsgBox "Por favor, seleccionar un area de la hoja", vbExclamation
        Exit Sub
    End If
    If Selection.Count > 1000000 Then
        MsgBox "Demasiadas celdas en la seleccion", vbCritical
        Exit Sub
    End If
   
    'descombinar celdas combinadas
    For Each rngCell In Selection
        If rngCell.MergeCells = True Then
            rngCell.UnMerge
        End If
    Next rngCell
      
    Exit Sub
   
errOverFlow:
If Err.Number = 6 Then
MsgBox "Se han seleccionado demasiadas celdas", vbCritical
Exit Sub
End If
   
End Sub


El código revisa todas las celdas en el área seleccionada y deshace las combinaciones. Como puede verse, hemos limitado la cantidad de celdas que puede contener el área, para evitar problemas de "overflow".

El mejor lugar para guardar el código es en un módulo del libro Personal.xls(m), de manera de poder usarlo en todos los cuadernos abiertos.

Como decía más arriba, la alternativa a Combinar y Centrar es usar Formato de Celdas-Alineación-Centrar en la Selección. Este código, como el anterior, deshace las combinaciones de celdas y luego aplica el centrado en la selección, manteniendo de esta manera el diseño de la hoja (la excepción es cuando la combinación de celdas incluye más de una fila)

Sub unmerge_and_center()
    Dim rngCell As Range
    Dim rngMergedRange As Range
    Dim strMergeAreaAddress As String
   
    'comprobar numero de celdas en la seleccion
    On Error GoTo errOverFlow
    If Selection.Count = 1 Then
        MsgBox "Por favor, seleccionar un area de la hoja", vbExclamation
        Exit Sub
    End If
    If Selection.Count > 1000000 Then
        MsgBox "Demasiadas celdas en la seleccion", vbCritical
        Exit Sub
    End If
   
    'descombinar celdas combinadas
    For Each rngCell In Selection
        If rngCell.MergeCells = True Then
            Set rngMergedRange = rngCell.MergeArea
            strMergeAreaAddress = rngMergedRange.Address
            Range(strMergeAreaAddress).Select
            rngCell.UnMerge
            Range(strMergeAreaAddress).HorizontalAlignment = xlCenterAcrossSelection
        End If
    Next rngCell
   
    Exit Sub
   
errOverFlow:
If Err.Number = 6 Then
MsgBox "Se han seleccionado demasiadas celdas", vbCritical
Exit Sub
End If

End Sub


El archivo con los códigos se puede descargar aquí.

martes, abril 16, 2013

Listas desplegables en Excel – La guía de JLD

Las listas desplegables son una de las herramientas indispensables en nuestros dashboards (tableros de comandos), informes y/o gráficos dinámicos y toda plantilla Excel donde se requiera manejar la interacción del usuario con el modelo.

Después de varios meses de preparación y correcciones (gracias a los correctores voluntarios por sus aportes, en particular a Javi) pongo a disposición de mis lectores la primer guía de la serie "Caja de herramientas Excel": Listas Desplegables.



Esta guía, dirigida tanto al usuario experimentado como al principiante, expone de forma didáctica y sistemática las distintas técnicas con las cuales podemos crear listas desplegables en Excel, desde el uso sencillo de Validación de Datos hasta técnicas con Vba (Visual Basic for Applications).



Cada capítulo va acompañado de ejemplos que pueden descargarse (sin costo adicional).

La guía tiene un costo de 7.99 Euros y puede descargarse aquí.

Actualización: si estás interesado en recibir la guía contactame por mail privado (ver el enlace Ayuda en la barra superior del blog).

jueves, abril 04, 2013

Guías JLD, Listas desplegables – Muchas gracias

La respuesta a mi pedido de colaboradores para la corrección del borrador de la lista ha superado todas mis expectativas.

Muchas gracias a todos los que se han ofrecido a ayudar.

Dada la cantidad de voluntarios he decidido cambiar de política. En lugar de enviar el borrador a los primeros cinco mails recibidos, haré un sorteo para seleccionar los cinco colaboradores.

Por supuesto, usaré Excel para el sorteo con el modelo que muestro en esta nota.

En las próximas horas estaré enviando el borrador a los voluntarios elegidos.

Nuevamente, muchas gracias a todos.

17/04/2013 - La versión final está disponible.