VBA : Actualisation
Résolu
piroc
Messages postés
67
Statut
Membre
-
pijaku Messages postés 13513 Statut Modérateur -
pijaku Messages postés 13513 Statut Modérateur -
Bonjour,
J'ai un petit problème côté VBA sur mon Excel...
Voici ma situation.
J'ai créer la formule suivant sous VBA qui me permet en fonction d'une couleur d'une cellule de prendre en compte sa valeur ou non :
Dans l'utilisation la formule fonctionne mais elle ne s'actualise pas automatiquement. Pour ce faire je dois rentrer dans le texte de la cellule et taper "Entrée". Ayant plusieurs centaines de cellule à actualiser, ce n'est pas viable....
J'ai donc crée un Bouton avec comme macro :
Cette macro m'actualise bien mes formules, mais juste 1 seul fois. Si je remet des couleurs, que je reclique sur le bouton cela ne fonctionne plus. Je dois dan ce cas la retourner dans la VBA est modifier un caractère (Ex : "Espace" puis "Suppr"). Après cela je peux recliquer sur le bouton (1 fois).
Savez-vous pourquoi le bouton ne fonctionne qu'une fois ? Que dois-je faire pour ce problème ?
PS : J'ai essayé les F9, calcul formule automatique mais RAS.
Cordialement,
J'ai un petit problème côté VBA sur mon Excel...
Voici ma situation.
J'ai créer la formule suivant sous VBA qui me permet en fonction d'une couleur d'une cellule de prendre en compte sa valeur ou non :
Option Explicit
Function SommeCouleur(Zone As Range, CRef As Range, X, Y)
Dim c, Cel, S
c = CRef.Interior.ColorIndex
S = 0
For Each Cel In Zone
If Cel.Interior.ColorIndex = c Then
S = S + Cel.Offset(Y, X)
End If
Next
SommeCouleur = S
End Function
Dans l'utilisation la formule fonctionne mais elle ne s'actualise pas automatiquement. Pour ce faire je dois rentrer dans le texte de la cellule et taper "Entrée". Ayant plusieurs centaines de cellule à actualiser, ce n'est pas viable....
J'ai donc crée un Bouton avec comme macro :
Sub Selection()
Range("CF35:CG333").Calculate
End Sub
Cette macro m'actualise bien mes formules, mais juste 1 seul fois. Si je remet des couleurs, que je reclique sur le bouton cela ne fonctionne plus. Je dois dan ce cas la retourner dans la VBA est modifier un caractère (Ex : "Espace" puis "Suppr"). Après cela je peux recliquer sur le bouton (1 fois).
Savez-vous pourquoi le bouton ne fonctionne qu'une fois ? Que dois-je faire pour ce problème ?
PS : J'ai essayé les F9, calcul formule automatique mais RAS.
Cordialement,
1 réponse
Bonjour,
Sans bouton, essaie d'ajouter
Sans bouton, essaie d'ajouter
Application.Volatileen début de ta fonction, comme ceci :
Option Explicit
Function SommeCouleur(Zone As Range, CRef As Range, X, Y)
Dim c, Cel, S
Application.Volatile
c = CRef.Interior.ColorIndex
S = 0
For Each Cel In Zone
If Cel.Interior.ColorIndex = c Then
S = S + Cel.Offset(Y, X)
End If
Next
SommeCouleur = S
End Function
Merci beaucoup !
A+