Monsieur Excel
Pour tout savoir faire sur Excel !

17 juillet 2008

La même chose, sans VBA !

Pour ceux d’entre vous qui sont allergiques au VBA, nous allons voir aujourd’hui comment obtenir le même résultat que dans le message du 12 juillet – c’est-à-dire la mise en relief de toutes les cellules contenant une formule –, sans recours au VBA.

Sans recours au VBA, certes, mais pas sans recours à la programmation. La solution que je vous propose utilise en effet le langage macro d’Excel 4 – ce qui nous ramène à l’année 1992 ! Cette solution est un peu plus compliquée, mais c’est le prix à payer pour se passer du VBA…

Voici – toujours avec C15 comme cellule active – l’écran définissant le format conditionnel de la cellule ainsi que la définition du nom utilisé dans cette formule :

La fonction Lire.Cellule(41;adresse) du langage macro Excel 4 récupère la formule utilisée comme définition de la cellule logée en adresse. Le nom
« Formule » identifie donc le premier caractère de la formule de C15. Quand ce premier caractère est un signe « = », cela signifie que nous avons affaire à une formule. CQFD !

Remarque 1 – Notez que la définition du nom est relative : il est formulé en fonction de « C15 » et non de « $C$15 », grâce à quoi il fera toujours référence à la formule de la cellule active.

Remarque 2 – Nous aurions aussi pu définir le nom avec =lire.cellule(41;Feuil1!C15) et mettre =gauche(Form;1)="=" comme formule pour le format conditionnel.