Gestion des couleurs

a marqué ce sujet comme résolu.

Bonjour je suppose que la couleur change en fonction de la valeur dedans, dans ce cas pourquoi ne pas appliquer la même condition dans l’autre cellule ? il existe la fonction "cell(’color’, B2)" mais ca ne retourne absolument pas ce que l’on peut attendre d’une telle formule https://stackoverflow.com/questions/41348844/excel-cellcolor-cell-function c’est spécial (honnêtement j’ai pas bien compris ce que ca fait, mais absolument pas retourner la couleur de la case)

je sais qu’il est possible de le faire en VBA https://docs.microsoft.com/fr-fr/office/vba/api/excel.interior.color

Je viens de penser a une methode : (tips a la fin) par contre, la valeur a l’interieur de la celule doit changer et pas seulement la couleur.

bon alors ca marche ^^ mais c’est pas des plus facile il faut ouvrir l’editeur de VBA (si jamais tu ne sais pas comment faire https://www.editions-eni.fr/open/mediabook.aspx?idR=75ea2bf6b2abce0a1ee41144aa4d3a7a ensuite dans la nouvelle page a droite en haut il y a une partie "projet" il faut double cliquer sur "thisworkbook" une page vierge vas apparaitre il faut y mettre ceci :

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
ActiveWorkbook.ForceFullCalculation = True
End Sub

cette partie permet de dire "a chaque fois que la feuille ce fait calculer forcer le calcul de toute les cellules

ensuite dans la partie a droite tu fais clique droit insertion "modules" et tu y colles

Public Function getCellColor(Rng As Range, Optional VolatileParameter As Variant)
Application.Volatile (Rng)
For Each cell In Rng
getCellColor = cell.Interior.ColorIndex
Next cell

End Function

cette fonction retourne la couleur de fond de la case choisi (si tu choisis plusieurs cellule ce sera uniquement la dernière) la partie avec VolatileParameter est uniquement présent pour l’actualisation

et pour finir la formule ressemble a '=getCellColor(B4)' et voila ca marche (par contre c’est bizarre ca marche que avec des cellules avec des chiffres)

TIPS : 1. a la place de : "Private Sub Workbook_SheetCalculate(ByVal Sh As Object)" (dans "this workbook") tu peux mettre "Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)" ca reduit la charge de calcul seulement au moment de sauvegarder

  1. j’ai pas trouvé pour évité le range

  2. si jamais ta feuille EXCEL est lourde (avec beaucoup de calcul) je te conseille de faire a la sauvegarde de la page j’ai dis une betise

image.png exemple avec du blanc et du noir : image.png

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte