Fonction vba : ne met pas à jour automatiquement le résultat !!!?

bubu4343

XLDnaute Nouveau
Bonjour,

J'ai créé une fonction qui renvoie un résultat dans;) une cellule (et qui prend en paramètre d'autre cellules de la feuille).
Le problème c'est que le résultat de ma fonction ne se met pas à jour (quand je modifie d'autres cellules relatives à cette fonction). je suis obligé de sélectionner ma cellule et de faire "enter" pour qu'elle recalcule.

Comment puis procéder pour le recalcule automatique de cette fonction ?
Merci
 

bubu4343

XLDnaute Nouveau
Re : Fonction vba : ne met pas à jour automatiquement le résultat !!!?

slt et merci.
J'ai bien mis Application.Volatile au début de ma fonction.
En faite c'est une fonction qui compte les cellules d'une certaine couleur et quand je modifie la couleur des cellules, ça ne marche pas!!!!!:(
 

Grand Chaman Excel

XLDnaute Impliqué
Re : Fonction vba : ne met pas à jour automatiquement le résultat !!!?

Bonjour,
Je crois que le fait de changer de couleurs de cellules, ne force pas automatiquement le recalcul de ta fonction.
Tu peux contourner ce problème en ajoutant le code suivant dans ton onglet :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.Calculate
End Sub

Ainsi, ta fonction sera recalculée chaque fois que tu changeras de cellules.
Attention, ça peut vite ralentir ton classeur si tu as plusieurs formules dedans.

A+
 

mutzik

XLDnaute Barbatruc
Re : Fonction vba : ne met pas à jour automatiquement le résultat !!!?

bonjour,

si elle doit changer de couleur, c'est pour une raison bien précise, je suppose
et grâce à cette raison bien précise, il est facile de compter sans créer une fonction pour cela
avec un fichier sans données confidentielles, cela serait plus facile de t'aider
 

Lericounet06

XLDnaute Junior
Bonjour,

j'ai le même soucis et je n'arrive pas à automatiser ma VGA (code ci-dessous) :

General (en haut) CompterCouleur (en haut)

Function CompterCouleur(PlageCouleur As Range, Couleur As Range)

Dim CodeCouleur As Integer
Dim NbrCouleur As Integer

CodeCouleur = Couleur.Interior.ColorIndex
Set CCell = PlageCouleur
For Each CCell In PlageCouleur
If CCell.Interior.ColorIndex = CodeCouleur Then
NbrCouleur = NbrCouleur + 1
End If
Next CCell
CompterCouleur = NbrCouleur


End Function



Pouvez-vous m'aider ?

Merci
 

Modeste geedee

XLDnaute Barbatruc
Bonjour,

j'ai le même soucis et je n'arrive pas à automatiser ma VGA (code ci-dessous) :

General (en haut) CompterCouleur (en haut)

Function CompterCouleur(PlageCouleur As Range, Couleur As Range)

Dim CodeCouleur As Integer
Dim NbrCouleur As Integer

CodeCouleur = Couleur.Interior.ColorIndex
Set CCell = PlageCouleur
For Each CCell In PlageCouleur
If CCell.Interior.ColorIndex = CodeCouleur Then
NbrCouleur = NbrCouleur + 1
End If
Next CCell
CompterCouleur = NbrCouleur


End Function



Pouvez-vous m'aider ?

Merci
Bonsour 😎
Peut-être ajouter une instruction : volatile
😃
Et/ou forcer le recalcul F9
 
Dernière édition:

Discussions similaires

Réponses
6
Affichages
234

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote