Afficher la formule de la cellule
Il est parfois utile – en particulier dans les applications pédagogiques – de reproduire, dans la cellule à droite d’une formule délicate, le texte de la formule.
La façon la plus simple d’atteindre cet objectif est d’utiliser les macros Excel 4 qui, contre toute attente et contrairement aux annonces de Microsoft en 1993, à la sortie d’Excel 5, continuent encore à fonctionner.
Reprenons le modèle publié dans l’article du 21 juillet 2011, en effaçant les colonnes C et suivantes pour simplifier la présentation.
Mettons-nous en C13 et définissons le nom « Formule » comme dans la fenêtre ci-dessous. Il suffit ensuite d’entrer la formule =formule dans la cellule C13 – et à la reproduire vers le bas – pour afficher en C13:C18 le contenu des formules de B13:B18.
Remarque 1 – Nous avons ôté de la définition du nom la référence à la feuille qui était venue automatiquement quand nous avons pointé sur la cellule à gauche. Nous avons aussi rendu cette référence relative. Grâce à ces deux opérations, la formule correspondra toujours à la cellule de gauche, quelle que soit la feuille active.
Remarque 2 – Si vous placez la définition de ce nom dans le classeur Perso.xls qui s’ouvre automatiquement au lancement d’Excel, vous pourrez utiliser ce nom dans n’importe quel classeur. Le seul problème est que, sur un autre ordinateur, la formule « =formule » engendrera alors une erreur #NOM ! car le nom ne sera plus reconnu...
La façon la plus simple d’atteindre cet objectif est d’utiliser les macros Excel 4 qui, contre toute attente et contrairement aux annonces de Microsoft en 1993, à la sortie d’Excel 5, continuent encore à fonctionner.
Reprenons le modèle publié dans l’article du 21 juillet 2011, en effaçant les colonnes C et suivantes pour simplifier la présentation.
Mettons-nous en C13 et définissons le nom « Formule » comme dans la fenêtre ci-dessous. Il suffit ensuite d’entrer la formule =formule dans la cellule C13 – et à la reproduire vers le bas – pour afficher en C13:C18 le contenu des formules de B13:B18.
Remarque 1 – Nous avons ôté de la définition du nom la référence à la feuille qui était venue automatiquement quand nous avons pointé sur la cellule à gauche. Nous avons aussi rendu cette référence relative. Grâce à ces deux opérations, la formule correspondra toujours à la cellule de gauche, quelle que soit la feuille active.
Remarque 2 – Si vous placez la définition de ce nom dans le classeur Perso.xls qui s’ouvre automatiquement au lancement d’Excel, vous pourrez utiliser ce nom dans n’importe quel classeur. Le seul problème est que, sur un autre ordinateur, la formule « =formule » engendrera alors une erreur #NOM ! car le nom ne sera plus reconnu...
2 Commentaire(s):
Marrant, je n'arrive pas à le reproduire dans mon Office 2010, mais je dois mal m'y prendre.
Par contre, je ne trouve pas forcément que ça soit la méthode la plus simple, une bonne vieille fonction publique enregistrée dans le fichier fait bien l'affaire :
Public function AfficherFormule(Cellule as range) as string
AfficherFormule = Cellule.Formula
End Formule
On peut même en faire quelque chose de sympa si la fonction à un but pédagogique :
Public Enum Enum_AfficherFormule
International = 1
Francais = 2
R1C1International = 3
R1C1Francais = 4
End Enum
Public Function AfficherFormule(Cellule As Range, Optional Retour As Enum_AfficherFormule = International) As String
Select Case Retour
Case International
AfficherFormule = Cellule.Formula
Case Francais
AfficherFormule = Cellule.FormulaLocal
Case R1C1International
AfficherFormule = Cellule.FormulaR1C1
Case R1C1Francais
AfficherFormule = Cellule.FormulaR1C1Local
End Select
End Function
Mais il ne s'agit là que de préférence personnelle :)
Molenn
By Anonyme, sur 10:37 AM
C'est bien vrai qu'il s'agit de préférence personnelle : je préfère un simple nom à une macro-fonction...
Quant à votre solution, qui marche bien, quitte à rendre le Retour obligatoire, voici une solution un peu plus légère :
Public Function AfficherFormule(Cellule As Range, Retour As Integer) As String
Select Case Retour
Case 1
AfficherFormule = Cellule.Formula
Case 2
AfficherFormule = Cellule.FormulaLocal
Case 3
AfficherFormule = Cellule.FormulaR1C1
Case 4
AfficherFormule = Cellule.FormulaR1C1Local
End Select
End Function
By Hervé Thiriez, sur 9:27 AM
Enregistrer un commentaire
<< Accueil