Ma Fonction fonctionne mais ne réagit pas aux modifications des cellules

Bonjour,

Je suis nouveau venu sur ce site en tant que débutant en apprentissage (autoformation) au langage VBA.

J'ai réalisé un petit exercice: une function qui totalise parmi une plage de cellules celles qui sont en Gras + Italique.

Cela fonctionne MAIS:

Si je change la valeur d'une cellule en G+I > La modif est prise en compte > ok

Si j'enlève les propriétés G+I d'une cellule > Modif pas prise en compte

Si je mets une cellule "normale" enG+I > Modif non prise en compte

Et, j'ai découvert par hasard que le total se modifie si je tape = + Enter dans la cellule à coté de celle où le résultat de la function est inscrit !!

Quelqu'un peut il m'apporter un peu de lumière !

Merci par avance

FabiNox

Function SommeGrasItal(Plage As Range) As Single
Application.Volatile
Dim Cellule As Range
Dim Somme As Single
Somme = 0
For Each Cellule In Plage.Cells
If Cellule.Font.Bold = True And Cellule.Font.Italic = True Then
Somme = Somme + Cellule.Value
End If
Next Cellule
SommeGrasItal = Somme
End Function

Bonjour,

La réponse est simple c'est que le code que vous utilisez n'est pas exécuté au changement de format d'une cellule mais bien au changement de valeur ou à l'ajout de quelque chose dans une cellule sur la feuille.

Quand vous mettez un + dans une cellule puis que vous appuyer sur ENTER, le code est exécuté.

NB :
- dans vos variables, évitez toujours l'utilisation d'un nom utilisé par Excel. Dans votre code vous utilisez CELLULE --> remplacez CELLULE par CEL ou CELL par exemple.
- lorsque vous postez un code, pensez à utiliser les balises de code en cliquant sur l'icone </> dans le menu et en collant le code dans la fenêtre. J'i amendé votre post pour que vous voyiez

Si ok et terminé pense à cloture

Cordialement

Bonsoir

Déjà un grand merci pour votre retour aussi rapide. Merci Merci

1) Donc si j'ai bien compris, c 'est normal, ce que je croyais être une anomalie n'en est pas une ? ou dois je revoir ma copie et modifier mon code ?

Je prends note de ne plus utiliser des noms "excel" en nom de variable.

Et, je vais essayer de produire mon langage comme vous le préconisez, je vais tester la méthode

Merci pour votre confirmation sur le point 1 svp

Bonjour

1) Donc si j'ai bien compris, c 'est normal, ce que je croyais être une anomalie n'en est pas une ? ou dois je revoir ma copie et modifier mon code ?

Oui vous avez bien compris.
Vous n'êtes pas obligé de revoir votre code mais pour ma part j'aurais évité l'utilisation de CELLULE.

Par contre votre code fait le total des valeurs de cellules qui sont en gras + italique mais ne fait pas le total du nombre de cellules qui sont en gras + I.
A la lecture de votre message, je suppose que c'est bien ce que vous voulez faire

Cordialement

Bonsoir et à nouveau Merci

En fait j 'ai codé 2 Functions

Une qui totalise, et l'autre qui compte le nombre de cellules en G+I

Le principe est le même, La différence est dans l'incrémentation de la cellule "résultat": somme = cellule + cellule en termes de "value"

Nombre = compteur + 1

Encore merci à vous et je vous souhaite une excellente soirée.

Cordialement

Rechercher des sujets similaires à "fonction fonctionne reagit pas modifications"