Fonction qui ne s'actualise pas

apnart

XLDnaute Occasionnel
Bonjour,

J'ai pas mal cherché sur le forum (et ailleurs), mais je n'ai pas trouvé la solution pour moi... pourtant le sujet est souvent évoqué.

J'ai fait un planning, je positionne avec des couleurs en fonction de si les gens sont en vacances, formation,... bref un code couleur qui va bien.

Je veux compter les couleurs pour compter le nombre de congés, de formations, ...

J'utilise cette fonction :
Code:
Function SomCouleur(Zne As Range, CaseRef As Range) As Integer

Dim CouleurInterieure As String


    Application.Volatile True
    SomCouleur = 0
    CouleurInterieure = CaseRef.Interior.ColorIndex
    
    For Each cell In Zne
       If cell.Interior.ColorIndex = CouleurInterieure Then SomCouleur = SomCouleur + 1
    Next cell


End Function

Zne est la plage de cellules où je veux compter les couleurs
CaseRef est une cellule qui contient la couleur que je veux compte (sur un légende)

ça fonctionne quand ça veut... et à priori seulement quand je fais F9

J'ajoute que cette fonction est mise dans un module.

Vos idées seront les bienvenues, car là je galère un peu.

Le but est que lorsqu'on colorie une case dans Zne, la fonction calcule automatiquement.

Merci d'avance
 

apnart

XLDnaute Occasionnel
Re : Fonction qui ne s'actualise pas

Houlà... il y a des gens même le samedi :D cool !

Donc merci déjà de vos réponse :D

Alors,

Pour Nyko, je viens de vérifier, et je suis en "workbook calculation - Automatic" (désolé, excel in english)

Pour Chrys, j'avais déjà mis "pplication.Volatile", mais pas en 1ère ligne, mais le résultat est le même

Pour Dull, j'ai mis le code dans la page, ça va mieux mais c'est très curieux...
Je m'explique, j'ai donc une macro qui mettent la couleur en cliquand sur un bouton, et une autre qui l'efface

Ma macro pour effacer :
Code:
[FONT=Courier New]Sub EFFACER(ByVal control As IRibbonControl)[/FONT]
[FONT=Courier New]Selection.Interior.ColorIndex = xlNone
Selection.ClearContents
       
End Sub[/FONT]

Ma macro pour colorier :
Sub A2(ByVal control As IRibbonControl)
CouleurCase = Sheets("Legende").Range("A2").Offset(0, 1).Value

With Selection.Interior
.ColorIndex = CouleurCase
.Pattern = xlSolid
End With

Application.CutCopyMode = False
End Sub


Pour expliquer la couleur, j'ai un onglet légende, avec colonne A mes couleurs (pour que ça soit bien visuel pour moi), et colonne B l'index couleur excel correspondant.


Le pb que j'ai maintenant avec le code de Dull, j'ai un compteur qui compte les cases vide, et un qui compte 1 couleur (ex : le rouge). Quand j'ajoute une couleur, même du rouge dans la zone à regarder, rien ne se passe... si j'efface 1 couleur, les 2 compteurs s'actualisent... donc en fait, ça ne marche que si j'enlève une couleur, pas quand j'en ajoute :confused:

des idées ?
 

apnart

XLDnaute Occasionnel
Re : Fonction qui ne s'actualise pas

Je crois que j'ai trouvé...

en fait j'ai ajouté "calculate" à la fin de chaque macro (couleur et efface), et ça marche.

Je ne sais pas si c'est propre, mais ça marche.

Si vous avez tout de même des explications sur mon soucis, je suis preneur
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 909
Membres
101 836
dernier inscrit
karmon