domingo, 24 de enero de 2016

Macro para encontrar fórmulas en una hoja de cálculo

Por lo general, utilizamos tantas fórmulas en una hoja de cálculo, que se vuelve un problema identificar cuantas y cuáles son las que hemos creado. Y tenemos que inspeccionar manualmente, todas y cada una de las celdas en la hoja de cálculo, para determinar dónde, cuáles y cuántas son las formulas existentes.

Ejemplo de búsqueda con la macro

Pues aquí les traiga la solución... una pequeña macro, que les ayudará a identificar las fórmulas de una manera práctica y sencilla. Esta macro la puedes tener a la mano en el momento preciso  que la necesites.

Haz la prueba... Dirígete al Editor de Visual Basic e inserta un nuevo módulo...


Cuando hayas insertado el nuevo módulo, copia y pega el siguiente código VBA, el cual, es la macro que nos hará el trabajo de búsqueda de cada fórmula en una hoja de cálculo activa.

Sub BuscarFormulas()
Dim Contar As Integer
Dim Celda As Range
    
    ActiveSheet.UsedRange.Select
    
    Selection.Interior.Color = xlNone
        For Each Celda In Selection
            If Celda.HasFormula Then
                Celda.Interior.Color = 5296274
                Contar = Contar + 1
            End If
        Next Celda
    MsgBox (Contar & " fórmula(s) encontrada(s) en la hoja de cálculo"), vbInformation
End Sub



Observa que he declarado dos variables: la primera, Contar de tipo Integer, la cual se encargará de devolvernos el número de fórmulas creadas. Luego tenemos la variable Celda, declarada del tipo de objeto Range, la cual recorrerá cada celda dentro de un rango.

En esta parte: ActiveSheet.UsedRange.Select, lo que pretendemos, es seleccionar el rango que tenemos en uso, dentro de la hoja de cálculo activa.

Con esta línea: Selection.Interior.Color = xlNone, quitamos cualquier fondo de color que pueda existir en el rango donde estamos haciendo la búsqueda.

Cuando la macro ha seleccionado el rango en uso, procede a ejecutar el bucle mediante la instrucción For.. Next..... en donde decimos.... For Each Celda In Selection, lo cual recorre cada celda seleccionada.

Con la condición IF, decimos: If Celda.HasFormula Then (que si, alguna celda contiene fórmulas, pues entonces)...  Celda.Interior.Color = 5296274 (Procedemos a ponerle un color de fondo a dicha celda, para poder identificarla fácilmente)... Contar = Contar + 1 (Contamos el número de celdas encontradas)...  End If (Finalizamos la condición IF.
Con Next Celda, el bucle recorre cada una de las celdas.

Y finalizamos con el mensaje, que tenemos, un  número de fórmulas encontradas en la hoja de cálculo.


Espero que esto te sea de utilidad, y si es así, compártelo con tus amigos en las diferentes redes sociales.

Nos vemos en la próxima entrega.

Saludos!



7 comentarios:

  1. Por supuesto que me es útil esta macro. Gracias por compartirla, profesor.

    ResponderEliminar
  2. Excelente fórmula y buena explicación al detalle como debería ser para entender mejor el uso de las macros

    ResponderEliminar
  3. Primero que todo muchas gracias por permitirme hacer parte de este estupendo grupo, muy útil la macro.

    ResponderEliminar
  4. Que tal Otto, como siempre son muy útiles tus publicaciones independientemente del medio, en lo personal me gustaría que expliques un poco más el código, a lo mejor que sea opcional para los que no les interese conocer a mayor detalle, que solamente copien el código, pero en lo personal creo que eres de las personas que explican mejor el código vba y en este espacio no estas aprovechando de esa cualidad que tienes.

    ResponderEliminar