Comme dans le dernier exemple, vous pouvez également programmer une fonction qui ajoute uniquement les cellules d’une plage qui ont une certaine couleur de police. Pour ce faire, écrivez la fonction suivante:
Function AjouterFormat(r As Range) Application.volatile For Each r In r.Cells If IsNumeric(r) Then If r.Font.Bold = True Then AjouterFormat = AjouterFormat + r.Value End If End If Next r End Function
Commentaires:
■ Il y a d’abord une vérification pour s’assurer que la fonction n’ajoute que des valeurs numériques, puis la couleur de la police est vérifiée. Un ajout n’est effectué que si la propriété ColorIndex a la valeur 3, c’est-à-dire rouge.
■ Les fonctions définies par l’utilisateur renvoient un résultat une fois. Si vous modifiez ensuite les valeurs d’un tableau, les cellules définies par l’utilisateur ne sont pas ajustées par défaut.
■ Si vous souhaitez rendre vos fonctions définies par l’utilisateur un peu plus sensibles, ajoutez l’instruction Application.Volatile dans la première ligne des fonctions. Cela marque la fonction comme volatile. Ces fonctions sont toujours recalculées si un calcul est effectué dans une cellule de la feuille de calcul. Cependant, les changements de format n’ont aucun effet sur la fonction.