VBA Excel : Réevaluation automatique d'une formule [Résolu]

Signaler
Messages postés
4
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
9 novembre 2007
-
Messages postés
4
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
9 novembre 2007
-
Bonjour si vous avez une solution à mon probleme ca m'aiderait enormement.

Je vous explique mon cas. J'ai des cellules avec des reels à l'interieur dès que j'ai fini de traiter des valeurs je met les cellules sur fond gris.
J'ai ecrit en m'aidant de code deja ecrit sur internet une fonction qui permet de calculer la somme des cellules.
Voici la fonction :

Function Couleurs(Plage As Range, IndexCouleur As Integer) As Double
Dim Cel As Range
  For Each Cel In Plage.Cells
    If Cel.Interior.ColorIndex = IndexCouleur Then
        If IsNumeric(Cel) Then
            Couleurs = Couleurs + Cel.Value
        End If
    End If
  Next Cel
End Function

J'appelle cette fonction dans la cellule A1 comme ca, j'ai en haut à gauche la somme des valeurs des cellules grises.

Le probleme : Dès que je met une nouvelle cellule sur fond gris, la valeur en A1 ne se met pas à jour automatiquement.

Y'aurait il un moyen en VBA de lancer l'evaluation d'une formule des qu'il y a un changement dans la feuille excel?
Merci d'avance pour vos reponses.

6 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Salut,

Les méthodes te sont proposé automatiquement :
Range(Cells(i, j), Cells(i2, j2)).Calculate







__________
Kenji

(


Nouveau forum VBA/Office
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Messages postés
4
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
9 novembre 2007

Je suis d'accord avec toi, avec l'evenement Worksheet_Change c'est faisable, mais comment demander la réevaluation de la formule?

Est ce qu'il existe en VBA un truc qui ressemble à :
Range(cells(i,j),cells(i',j')).formula.calculate()
Messages postés
4
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
9 novembre 2007

salut, 
Si vous avez une idée pour faire un code dans ce style :

Pour toutes les cellules de la feuille qui possede la fonction : XXX , reevaluer la formule.

ce resolvera totalement mon prbleme.
merci d'avance pour vos reponses.
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
17
Pas certain de bien comprendre, mais as-tu regardé le mot Volatile dans ton aide ?

MPi²
Messages postés
4
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
9 novembre 2007

Merci c'est bon ca fonctionne.

En ecrivant seulement range(...).calculate ca faisait rien, j'ai ajouter avant :
Application.Calculation = xlCalculationManual

et c'est bon!
Merci beaucoup de votre aide, ca tourne impec!!!!