Bonjour,
Je viens de créer une fonction en VBA qui me permet d'obtenir des renseignements auxquels n'accèdent pas les fonctions classiques de feuille de calcul.
C'est une fonction toute simple qui permet d'obtenir l'index de la couleur de fond d'une cellule :
Quand on la tape, elle marche bien et donne effectivement la couleur de la cellule cible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Function Coul(YYY1 As Range) As Long Coul = YYY1.Interior.ColorIndex End Function
Le problème, c'est que lorsqu'on modifie la couleur de la cellule cible, le résultat ne se remet pas à jour, comme si Excel considérait cette modification insuffisante pour mettre à jour la formule.
Pourtant, je suis en recalcul automatique.
Par contre, si j'édite la cellule (celle où se trouve la cellule ou la cellule cible) et que je la valide sans rien changer, le résultat est actualisé.
Le problème est qu'il y a quelques centaines de ces formules qui pointent vers autant de cellules. Je ne peux donc pas, à chaque fois, demander une mise à jour ainsi.
J'ai essayé de l'activer par un évènement sur WorkSheet.
Le Calculate est bien lancé chaque fois que je change de sélection mais il ne remets pas à jour les résultats de ma formule.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveSheet.Calculate End Sub
Du coup, je suis à court d'idées.
Connaissez-vous une méthode pour faire une sorte de super-calculate qui force réellement toutes les cellules (ou des cellules sélectionnées) à se recalculer (même pour celle que Excel estime que ce n'est pas nécessaire) ?
Merci d'avance.
Partager