Appliquer formule en fonction de la couleur d'une cellule
Bonsaiblue
Messages postés
3
Statut
Membre
-
dabuek Messages postés 17 Statut Membre -
dabuek Messages postés 17 Statut Membre -
Bonjour,
J'ai des tableaux dont certaines cellules sont colorées avec le code couleur : #FCE4D6
Et j'aimerais appliquer une formule.
Mais le soucis ou je bloque c'est que la formule dépend des cellules non colorées (avant et après la cellule en question), le but étant d'automatiser la formule pour chaque cellules colorées.

Exemple : Si on la cellule B3 est colorée alors on applique la formule suivante :
En littéraire la formule serait :
Merci d'avance pour votre aide.
J'ai des tableaux dont certaines cellules sont colorées avec le code couleur : #FCE4D6
Et j'aimerais appliquer une formule.
Mais le soucis ou je bloque c'est que la formule dépend des cellules non colorées (avant et après la cellule en question), le but étant d'automatiser la formule pour chaque cellules colorées.
Exemple : Si on la cellule B3 est colorée alors on applique la formule suivante :
B3=$B$2+(($B$5-$B$2)/($A$5-$A$2))*(A3-$A$2)
En littéraire la formule serait :
nouvellevaleur = valeur_Notion_existante_juste_avant + ((valeur_Notion_existante_juste_après - valeur_existante_juste_avant)/(temps_existante_juste_après - temps_existant_juste_avant)) * (Nouveau_Temps - temps_existant_juste_avant)
Merci d'avance pour votre aide.
Configuration: Windows / Chrome 86.0.4240.198
A voir également:
- Appliquer formule en fonction de la couleur d'une cellule
- Excel cellule couleur si condition texte - Guide
- Fonction si et - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule mathématique - Télécharger - Études & Formations
- Formule excel si couleur cellule alors ✓ - Forum Excel
1 réponse
Bonjour,
Si je comprends bien votre problème, il faut utiliser une fonction If pour appliquer l'une ou l'autre formule, exact ?
Dans ce cas, comme il n'existe pas sous Excel (j'ai 2019 mais je ne pense pas que la fonction ait été créée sous 365 pour l'instant) une fonction qui permette cela, il suffirait de créer une fonction très simple sous VBA.
Si vous ne savez pas comment faire :
- Dans les options, activez votre onglet Développeur ;
- à partir de cet onglet, créez un nouveau module en cliquant sur le deuxième outil de la barre
d'outils (la bulle doit afficher "Nouveau module") ;
- Dans la fenêtre principale, intégrez ce code :
N'oubliez pas de sauvegarder le classeur sous format .xlsm (prenant en charge les macros)
Si vous souhaitez que cette fonction soit utilisable avec plusieurs classeurs différents, vous pouvez aussi faire en sorte d'avoir le classeur contenant le module ouvert en même temps que ceux sur lesquels vous travaillez : toutes les macros et les fonctions des classeurs ouverts fonctionneront aussi pour les autres ouverts.
La fonction a utiliser sera bien sûr Estencouleur(VotreRéférence), et elle renverra une valeur VRAI/FAUX ; du coup elle a sa place en premier paramètre d'une fonction SI().
Voilà, j'espère que cela pourra vous servir ! ;)
Si je comprends bien votre problème, il faut utiliser une fonction If pour appliquer l'une ou l'autre formule, exact ?
Dans ce cas, comme il n'existe pas sous Excel (j'ai 2019 mais je ne pense pas que la fonction ait été créée sous 365 pour l'instant) une fonction qui permette cela, il suffirait de créer une fonction très simple sous VBA.
Si vous ne savez pas comment faire :
- Dans les options, activez votre onglet Développeur ;
- à partir de cet onglet, créez un nouveau module en cliquant sur le deuxième outil de la barre
d'outils (la bulle doit afficher "Nouveau module") ;
- Dans la fenêtre principale, intégrez ce code :
Function EstEnCouleur(MaCellule As Range) As Boolean
EstEnCouleur = False
If MaCellule.Interior.ColorIndex <> xlColorIndexNone Then
EstEnCouleur = True
End If
End Function
N'oubliez pas de sauvegarder le classeur sous format .xlsm (prenant en charge les macros)
Si vous souhaitez que cette fonction soit utilisable avec plusieurs classeurs différents, vous pouvez aussi faire en sorte d'avoir le classeur contenant le module ouvert en même temps que ceux sur lesquels vous travaillez : toutes les macros et les fonctions des classeurs ouverts fonctionneront aussi pour les autres ouverts.
La fonction a utiliser sera bien sûr Estencouleur(VotreRéférence), et elle renverra une valeur VRAI/FAUX ; du coup elle a sa place en premier paramètre d'une fonction SI().
Voilà, j'espère que cela pourra vous servir ! ;)