Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Compter les cellules selon leur couleur de remplissage
Bonjour à tous,
Voilà, je parcours depuis 2 jours le net et le forum pour trouver une solution à mon problème.
Malgré les nombreux essais, cela ne fonctionne pas.
HELP !
Cordialement
Stéphanie
Edit: s'il y a toujours non fonctionnement, précisez les opérations effectuées, les couleurs utilisées (même si les couleurs semblent être identiques, leur colorindex peut-être différents) ...
Essaye le fichier joint, chez moi il est fonctionnel donc il le devrait être aussi chez toi. N'oublie pas d'activer les macros à l'ouverture du fichier, et lorsque tu mets une couleur dans ton fichier n'oublie pas de valider par enter pour prendre en compte dans la colonne AI cette couleur.
il doit y avoir un problème dans les paramètres de mon excel...
Je ne suis pas experte mais pas non plus bête à ce point
ça ne fonctionne pas
doit je recréer un nouveau doc ?
curieux que ça fonctionne mieux avec le classeur de riton00 ?
la fonction est sensiblement la même, et le "déclencheur" est le même,
sauf qu'on le trouve dans Private Sub Worksheet_SelectionChange(ByVal Target As Range) (au niveau feuille) et dans Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)( au niveau Thisworkbook) et qui sont activés tous les deux (1 de trop)
concernant ce "déclencheur":
Code:
If Not Intersect(Target, Sh.Range("B3:AF14")) Is Nothing Then Sh.Range("B3:AF14").Calculate
If Not Intersect(Target, Sh.Range("B22:AF33")) Is Nothing Then Sh.Range("B22:AF33").Calculate
If Not Intersect(Target, Sh.Range("B41:AF52")) Is Nothing Then Sh.Range("B41:AF53").Calculate
Comme dans la fonction on trouve : Application.Volatile, le fait de lancer un Calculate (même partiel) déclenche la mise à jour de la fonction de toutes les cellules de toutes les feuilles.
En fait, il faudrait :
Code:
If Not Intersect(Target, Sh.Range("B3:AF14")) Is Nothing Then Sh.Range("B3")=1
If Not Intersect(Target, Sh.Range("B22:AF33")) Is Nothing Then Sh.Range("B22")=1
If Not Intersect(Target, Sh.Range("B41:AF52")) Is Nothing Then Sh.Range("B41")=1
Puisqu'alors on modifie la plage utilisée par la fonction, Application.Volatile n'est plus nécessaire, et seules les fonctions utilisant la plage qui vient d'être modifiée seront mises à jour. donc temps de traitement plus court.
Si on utilise plusieurs feuilles, il y aura nécessité de copier Private Sub Worksheet_SelectionChange(ByVal Target As Range) (au niveau feuille) pour toutes les feuilles.
Je préconiserais donc de conserver le "déclencheur" dans Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)( au niveau Thisworkbook) qui fonctionne tel quel avec une ou plusieurs feuille.
Bonjour à tous,
Je reviens vers vous car le fichier va évoluer et dans ce classeur, il y a plusieurs feuilles (1 par personne) et la fonction fonctionne dans le première feuille mais pas dans les autres.
C'est certainement un oubli de ma part...
Comment dois-je faire ?
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.