XL 2016 Couleur par Assosiation

  • Initiateur de la discussion Initiateur de la discussion Amigo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Amigo

XLDnaute Occasionnel
Bonjour Le Forum
J’espère que vous êtes bien protégés. Je viens vers vous pour exposer mon problème.
J’ai adapté le fichier ci-joint (Propriétaire M. Boisgontier = Merci à Lui) pour mes besoins de gérer les absences de 3 Associations différentes. Par contre les adhérents peuvent être dans les 3 associations.
Mon souhait d’adapter le code pour que quand je clique dans la zone d’une association je n’aurai que la couleur attitrée à cette association et l’option « Effacer » seulement.
Par exemples :

Asso1 => couleur Bleu + Effacer
Asso2 => couleur Rouge + Effacer
Asso3 => couleur Or + Effacer

Merci par avance
Amigo
 

Pièces jointes

@job75
Merci, j'ai trouvé celui-ci en ajoutant un bouton
VB:
ub efface()
  Application.ScreenUpdating = False
  On Error Resume Next
  For Each i In Range("C12:AF31")
   If i.Column > 2 And i.Row > 3 Then
     coul_lig = i.Offset(0, -(i.Column - 2)).Interior.ColorIndex
     coul_col = i.Offset(-(i.Row - 2), 0).Interior.ColorIndex
     i.Value = Empty
     Selection.Borders(xlDiagonalUp).LineStyle = xlNone
     If coul_lig = xlNone Or coul_lig = 2 Then
        i.Interior.ColorIndex = xlNone
     Else
        i.Interior.ColorIndex = coul_col
     End If
   End If
   Next i
End Sub
 
@fanch55
Par respect de répondre : J'ai adapté ton code dans mon fichier principal en changeant aussi les noms des rectangles par les vrais noms des Assos dans feuille "Couleurs" idem dans le code et j'ai un code d'erreur (voir photo jointe) sur la ligne :
" Case Not Intersect([Personnel], Target) Is Nothing"

Cordialement
Amigo
Capture erreur.JPG
 
@Amigo

1585220595091.png


Si vous utilisez votre propre fichier, il est probable que les zones "nommées" n'existent pas.
A adapter à l'emplacement de celles-ci dans votre fichier et à exécuter 1 seule et unique fois :

Sub Define_Nom()

ActiveWorkbook.Names.Add Name:="Personnel", RefersTo:="=Tableau!$c$12:$af$31"
ActiveWorkbook.Names.Add Name:="Entete_Asso", RefersTo:="=Tableau!$c$11:$ai$11"

End Sub
 
@Amigo

Nouveau fichier alternatif .
Nouveau Onglet "Association" où vous pourrez changer l'intitulé et la couleur des associations .
Les noms des intervenants ont été regroupés dans une zone nommée "Participants" .
Quand vous assignez quelqu'un à une association, non seulement la cellule est coloriée mais elle contient le nom de la personne, vous verrez c'est plus visuellement "parlant" .
Pour redéfinir les zones nommées : module1/Sub Define_Nom .


Bon, je sais, on est loin de la demande initiale,
mais je vois que vous essayez de vous servir de VBA et d'Excel,
si mon code peut vous aider dans votre démarche ....😎
 

Pièces jointes

Bonjour Pierrejean, Job75, GALOULALOU, fanch55, le Forum

@fanch55
Merci pour votre nouvelle version. Toutes les idées et contributions sont utiles car ca me fait réfléchir sur la multiplicité des solutions et leurs richesses et me font progresser.

Je me permets de revenir vers vous car je suis en train de faire une synthèse des absences (feuille Synthèse).
je souhaite regrouper par mois et par association le total des absents. j'ai essayé avec la fonction "Couleurs" mais ca me ralenti le calcul et me donne #Valeur dans chaque cellule, pour remédier à ca je suis obligé de cliquer et valider dans chaque calcul . Idem pour la Sommeprod.
Je ne sais pas si par un code VBA serait plus rapide (le nombre des Associations et les adhérents peuvent augmenter.
Cordialement
Amigo
 

Pièces jointes

Bonjour Amigo,

Puisque les couleurs sont accompagnées par des lettres il suffit de les compter.

Formule en I6 de la feuille Synthèse :
Code:
=NB.SI(INDEX(Tableau!$12:$31;;EQUIV(I$5;Tableau!$9:$9)+LIGNE()-6);"*")
à propager sur la plage I6:R8.

Un code VBA est sans intérêt ici.

Pour les valeurs zéro il y a plusieurs manières de les masquer, je vous laisse faire.

A+
 
@job75
merci Job75 pour cette formule. Pour le Zéro j'utilise format perso : # ##0;;
- Justement j'utilisait Sommeprod pour compter les lettres mais ca ramait.
- j'espère qu'elle est plus légère que la fonction :
"=couleurs(Tableau!C$12:C$31;33)" qui me donnait #Valeur et m'oblige à cliquer et valider pour obtenir le résultat.

- Pour le code VBA, je pensais qu'il sera moins gourmant en mémoire car dans la zone (C2:AF) de la feuille "Tableau" j'ai 6 formules matricielles.
Cordialement
Amigo
 
Salut à tous,
Je ne comprend pas le problème,
Qu'entend-t-on par absent ou absence ? Quelqu'un qui n'a pas été assigné à une association ? ou bien le nombre ou non d'assignation pour une association (ce qui semble plus probable au vu de la feuille synthèse) .
@Amigo
Quel est le genre de fichier que vous avez retenu ?
Si je dois plancher sur qq chose, que ce soit pour le bon ... 🙄
 
Bonjour le Fil, le Forum
@fanch55
dans chaque version il y a des avantages.
La votre définit les zones ce qui rend le fichier plus maniable.
N.B : la feuille synthèse est le cumul des absents aux réunions chaque mois.

@job75
J'ai essayé ta formule en l'appliquant sur les 300 adhérent et le résultat est satisfaisant et ne rame pas trop. Merci.

- Une problématique qui s'impose, lorsque un nouvel adhérent arrive, comment faire pour l'inclure et élargir la zone de saisie sans que à chaque fois je la modifie dans la macro. Idem quand un adhérent quitte une association.

Cordialement

Amigo
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour