1 bouton qui active ou désactive un "Sub" pour enlever toutes les croix

Suite,

Sauf que ma 1ière feuille est bien celle que je t'ai présentée. Si tu regardes pour exemple dans la feuille paramètres, la ligne 6 et colonne G. Il y a Auxi en Abrevv et il y a 1 à sa droite. Je n'ai pas touché à cette dernière colonne. Ce 1 est donc d'origine.

Si l'on regarde tes explications, le code 014 signifie que l'on est en semaine paire, sur le 1ier jour de la semaine, et la 4ième colonne visible (donc F).

En regardant la 1ière feuille, j'ai bien une croix sur la cellule cible, donc F4. Pourquoi sur la dernière image de feuille que tu affiches, sur cette case F4, il n'y a pas de croix. Puisque le chiffre 1 dans la macro est associé à une croix.

Or nous sommes le 25 janvier et en case F4 au dessus c'est le lundi 1ier décembre. Donc bien avant ce jour. Et donc cette case ne devrait pas être vide comme sur ton image. Vu que tu souhaites que toutes les cases avant le 25 soient figées. En fait tu aurais pu la changer mais si cela avait été réalisé en novembre 2025. Et dans Paramètres en G6 on aurait un 0, non le 1.

Sinon réalise un modus opérandi avec une feuille vide de croix en exemple, puis applique pendant 3 ou 4 jours le prébarrage avec changement dans la colonne G et avec alternance 0 et 1 pour la cellule J2 afin que ce soit beaucoup plus clair.

Personnellement j'aurais fais beaucoup plus simple. Un double-clic sur une case de la feuille mois année pour faire apparaître une croix ou la faire disparaître (après déprotection) et tant que le jour n'est pas passé.

Bonne réflexion, comme je me lève de bonne heure demain. Je finis maintenant.

Sauf que ma 1ière feuille est bien celle que je t'ai présentée. Si tu regardes pour exemple dans la feuille paramètres, la ligne 6 et colonne G. Il y a Auxi en Abrevv et il y a 1 à sa droite. Je n'ai pas touché à cette dernière colonne. Ce 1 est donc d'origine.

Si l'on regarde tes explications, le code 014 signifie que l'on est en semaine paire, sur le 1ier jour de la semaine, et la 4ième colonne visible (donc F).

En regardant la 1ière feuille, j'ai bien une croix sur la cellule cible, donc F4. Pourquoi sur la dernière image de feuille que tu affiches, sur cette case F4, il n'y a pas de croix. Puisque le chiffre 1 dans la macro est associé à une croix.

Tout ce que tu écris est exact jusque là...

Un autre exemple concret : Admettons que nous soyons le 1er décembre 2025. La feuille, au départ ressemble effectivement à ça (avec des croix partout dues aux paramètres de J2=1) ==>
Mais au fur et à mesure que des jours avancent, j'efface des croix car les séances à croix (qui désignent des séances non prioritaires), ont finalement eu lieu, etc, etc, etc, etc :

image

Or nous sommes le 25 janvier et en case F4 au dessus c'est le lundi 1ier décembre. Donc bien avant ce jour. Et donc cette case ne devrait pas être vide comme sur ton image.

Justement cette case F4 devrait être vide car même si dans les paramètres j'ai normalement une croix quand je mets J2=1, on est d'accord ===> Cette croix et beaucoup d'autres ont été enlevées à la main (c'est vrai qu'une solution automatisée pour mettre ou enlever des croix ça serait plus simple pour nous ) car finalement on a assuré cette séance de sport. Tout ce qui vient avant la date d'aujourd'hui ne devrait pas être affecté de quelques sortes que ce soit. Si tu relis le message précédent j'explique pourquoi.

Donc bien avant ce jour. Et donc cette case ne devrait pas être vide comme sur ton image. Vu que tu souhaites que toutes les cases avant le 25 soient figées.

Oui je veux que toutes les cellules soient figées, dans l'état où tu les vois, mais avec mes modifications au jour le jour, quand tous les profs ont pu assurer ou non les séances. Mais imagine qu'un ou plusieurs profs ne soient pas venus au final, donc je réajuste.

Je ne vais pas barrer des séances qui finalement ont eu lieu !

Voici l'état de notre service avant le 25 janvier 2026 :
C'est ce tableau qui fait foi de ce qui c'est réellement passé en terme d'occupation des séances !!! Le j2=1 ne doit plus du tout, du tout influencer les cellules !!!

image

_________________________

Il y avait effectivement une croix dans F4 au départ puisque les croix ciblent des séances non prioritaires. Mais comme tous les profs étaient présent, le lendemain j'ai mis à jour le tableau et j'ai enlevé la croix en F4 pour City3-Auxi car elle a bien eu lieu !!!!!!

Je ne veux pas garder la croix sur F4 et sur toutes les autres c'est strictement pareil, en dehors de celles pour le :
- 8 décembre (3 profs absents ce jour là et y'avait 2 profs qui ne pouvaient pas rester seuls) ==> Donc le 8 décembre on a fermé le service des sports exceptionnellement.
- Pour les autres croix, j'ai d'autres explications (nous sommes 5 profs mais y'en a 3 qui ne peuvent pas rester seuls avec nos sportifs)

Enfin bref, si c'est possible j'aimerais avoir ce type de tableau car au départ, on a effectivement toutes les croix des paramètres pour J2=1 mais jour après jour, au fur et à mesure que les séances ont lieu, j'enlève certaines croix (à la main avec les bordures excel) car des séances ont bien lieu !!!

En fait tu aurais pu la changer mais si cela avait été réalisé en novembre 2025. Et dans Paramètres en G6 on aurait un 0, non le 1.

En G8 en réalité, tu voulais écrire, je pense. Effectivement avec les paramètres on aurait pas dû avoir de croix MAIS comme aucun des profs étaient présents j'ai mis une croix car la séance n'a pas eu lieu !!!

C'est pour ça qu'il ne faut pas revenir sur les jours avant la date car sinon ça fausse tout mon tableau.

LES CROIX PAR J2=1 NE SERVENT QUE POUR DES INDICATIONS DE PRIORITé ET RIEN D'AUTRE...

___________________________

Donc avec le code actuel, quand j'ouvre la feuille 2 mois de "Déc25 Janv26", le J2=1 fausse complètement mon tableau ==> Il ne faut pas que les formats changent quand le jour est passé !!!

_________________________________________

Personnellement j'aurais fais beaucoup plus simple. Un double-clic sur une case de la feuille mois année pour faire apparaître une croix ou la faire disparaître (après déprotection) et tant que le jour n'est pas passé.

C'est vrai tu as entièrement raison sauf que j'utilise déjà le double-clic et le clic droit sur les cellules des noms. Mais de toute façon, il faudrait que tu vives la journée avec nous pour comprendre cette solution, celle que que je souhaite, elle est la meilleure et largement approuvée par tous mes collègues car ça permet de planifier les semaines à l'avance et de programmer nos absences en fonction des séances prioritaires ou non.

*** Les croix des J2=1 sont à titre indicatifs

***Les croix dans les cellules avant la date "d'aujourd'hui" sont celles qui valident définitivement qu'une séance n'a pas eu lieu (et ce pour des tas de raisons) !!!

En réalité ça doit donner ça au final ==> Uniquement les croix entourées en rouge ou verte et rien d'autres (puisqu'en F4, G8, etc, etc, etc, etc) les séances (non prioritaires par le J2=1) ont bien eu lieu donc j'ai enlevé toutes les croix :

image

Désolé pour tout le temps que tu prends...

Bonne soirée et bonne nuit Pareil, j'ai un rdv médical à 8h15, à 45 km de chez moi et il faut traverser tout Marseille

Bon courage pour le réveil de bonne heure...

Bonsoir Vodoraix, le Fil,

Merci pour cette réponse plus détaillée et claire. Je comprends mieux que des opérations manuelles après des actions réalisées pour répondre au mieux aux besoins puissent changer les paramètres d'origine.

Deux solutions.

Soit comme je l'indiquais passer par un clic-droit mais couplé à une autre touche spécial (CTRL, SHIFT, ALT...). Ce qui le distinguerait d'un simple clic-droit, puisque déjà utilisé. Et qui lors du clic modifierait en même temps la colonne G de la feuille Paramètres. En substituant le 1 par un 0 sur la case modifiée de la feuille mois année.

Mais au vu que ces changements sont plutôt modestes dans le bimestre. Ce serait créer du code pour peu d'utilisation. La méthode manuelle suffirait largement.

Soit modifier le code actuel en lui apportant la condition de date au niveau du deuxième Set C.. Donc sur la plage entière du tableau au moment où il injecte les valeurs 1 de la feuille paramètres.

Ainsi seuls les valeurs 1 dont la date est supérieure ou égale subiront le changement. En résumé ce que tu as entouré en vert dans ton image

Je regarde cela après le dîner et te renvoie la modification sous peu, après test.

À bientôt.

Bonsoir X Cellus et merci beaucoup d'insister malgré les contraintes que je fais subir à tous

C'est super gentil de proposer d'automatiser mes croix Ca me faciliterait grandement la vie
1 clic droit serait super car le code de BsAlv permet de faire les 2 pour la même action, je m'explique ==> Qd je doucle-clic ou clic-droit, j'ai la même chose ==> les prénoms dans les cellules deviennent "soulignés & gras" pour incrémenter le comptage de la feuille "Synthèse des séances". Ainsi on abandonnerait le clic droit des prénoms au profit des croix dans les bordures (on évite ainsi de coupler). Qu'en penses-tu ?

Sinon ton autre proposition d'automatiser le changement de la colonne G dans "Paramètres", en modifiant le 1 ou 0 en fonction des croix, c'est franchement bien vu mais je préfère très largement le faire à la main car il y a 2 types de croix (de plus ces croix créées avant la date du jour, n'ont parfois rien à voir avec les croix programmées de la feuille paramètres ) :

*** Les croix des J2=1 sont à titre indicatifs ==> ça serait bien de les laisser en écriture noire comme actuellement.

***Les croix dans les cellules avant la date "d'aujourd'hui" sont celles qui valident définitivement qu'une séance n'a pas eu lieu (et ce pour des tas de raisons). Et ces croix provoquées par un clic-droit pourraient être en rouges. Par contre, il faudrait absolument interdire la possibilité de créer ces croix rouges après la date d'aujourdhui(). En écrivant dans le code que les croix rouges ne peuvent être créées que lorsque la date est inférieure ou égale à la date du jour

AINSI ON FERAIT LE DISTINGO ENTRE LES CROIX DES PREVISIONS (en noires) ET LES CROIX DES SEANCES QUI N'ONT PAS EU LIEU CAR 1 OU DES PROFS ETAIENT ABSENTS (croix en rouges) : Qu'en penses-tu ? C'est grâce à tous tes questionnements que ça m'a donné l'idée !

Tout ce que tu m'as écrit a complètement du sens. C'est certain que mon tableau est très complexe et pas facile à comprendre. Désolé pour les complications...

Donc il faudrait retirer, dans le code VBA de BsAlv sur le Workbook, le clic-droit pour l'attribuer aux croix créées avant la date du jour. En principe ces clics-droits se trouvent sur les lignes prénoms des feuilles "2mois" ==> Il faudrait modifier le "Sub Workbook_SheetBeforeRightClick" en y attribuant les lignes 4 et les multiples de 4 à la place des lignes 5, 9, 13, etc...

Private Sub Clicquer(ByVal SH As Object, ByVal Target As Range, bCancel)
     '********************************************
     'la même procédure pour le double-clicque et le right-clicque
     'donc dépendant de ton goût, utilise celui que tu préfères
     '*********************************************
     bCancel_HS = False                      'handshake for the Cancel
     If SH.Name Like "*## *##" Then          'nom de la feuille ressemble à cela (donc texte et 2 chiffres + espace + texte et 2 chiffres)
          If Target.Cells.CountLarge = 1 Then
               If Target.Row Mod 4 = 1 And Target.Row > 4 And Target.Row < 42 And Target.Column < 33 And Target.Value <> "" And Target.Value <> 0 Then     'double-clicque dans une ligne qui est un multiple de 4 +1 (donc 1,5,9,13,...)
                    bCancel_HS = True
                    With Target
                         B = Not .Font.Bold  'état "gras" de cette cellule
                         .Font.Bold = B      'état "gras" de cette cellule est inversé
                         .Font.Color = IIf(B, RGB(0, 0, 0), RGB(217, 217, 217))     'coluleur du texte = gris ou gris clair
                         .Font.Underline = IIf(B, xlUnderlineStyleSingle, xlNone)     'souligné ou pas
                         M_Synthese
                    End With
               End If
          Else
               SH.Unprotect
          End If
     End If
End Sub

Private Sub Workbook_SheetBeforeDoubleClick(ByVal SH As Object, ByVal Target As Range, Cancel As Boolean)
     Clicquer SH, Target, Cancel
     If bCancel_HS Then
          Cancel = bCancel_HS
          M_Synthese
     End If
End Sub

Private Sub Workbook_SheetBeforeRightClick(ByVal SH As Object, ByVal Target As Range, Cancel As Boolean)
     Clicquer SH, Target, Cancel
     If bCancel_HS Then
          Cancel = bCancel_HS
          M_Synthese
     End If
End Sub

Bon appétit et mille mercis encore pour ton aide et tes conseils avisés

Bonne soirée...

à bientôt

En parlant d'appétit, voilà 5 ans j'ai créé un site sur la diététique et le sport-santé si ça t'intéresse. J'aime à croire qu'il est assez complet

https://sport-adapte-nutrition.fr/

C'est l'aboutissement d'un travail sur plus de 20 ans de recherches

__________________________________________

Je viens de penser à un truc ==> Sur clic-droit, ça serait faisable et pas trop dur à écrire le code si ça fait 3 actions dans la même cellule, sur chaque clic-droit :

- 1 premier clic-droit, j'ai une croix rouge

- 1 deuxième clic, j'ai une croix noire

- 1 troisième clic, j'ai la cellule vide, sans croix

- 1 quatrième clic-droit, ça revient comme pour le premier clic (croix rouge)

- etc...

Qu'en penses-tu ?

à +

Merci encore pour ces autres explications et l'intitulé de ton site.

Par contre il y a un blocage que j'avais zappé. Tes feuilles mois année sont protégées. Donc il est impossible que je puisse les modifier pour tester facilement.

J'ai réalisé par macro d'ôter les premières croix sur Décembre 2025. Donc j'ai pu décroiser les premieres cases. Mais cela prend plus de temps et allonge les tests que si la feuille était déjà déprotégée. Et vu que je me lève à 6h20 demain je ne pourrais pas avancer plus ce soir.

Donc je reprendrais demain soir et mercredi soir.

Entre-temps laisse moi soit ici ou en message privé le code déverrouillant la première feuille.

À plus.

Hello X Cellius et encore merci pour ton aide...

Désolé pour la protection mais il n'y a aucun mot de passe. C'est juste que BsAlv me les a protégées de façon à ce que dès que je débloque une feuille, la moindre action, me reprotège la feuille pour éviter que des utilisateurs novices ne fassent des bêtises irréversibles.

Peut-être qu'il faudrait désactiver une sub dans le module 1 ==>

Option Compare Text

Sub Eon()
     Application.EnableEvents = True
End Sub

Sub Eoff()
     Application.EnableEvents = False
End Sub

Sub Proteger()
     M_Proteger
End Sub

Sub M_Proteger(Optional SH As Worksheet)
     If SH Is Nothing Then Set SH = ActiveSheet
     With SH
          If Not .ProtectContents Or .ProtectDrawingObjects Or Not .ProtectionMode Or Not .Protection.AllowFiltering Or Not .Protection.AllowSorting Then
               .Protect DrawingObjects:=False, Contents:=True, AllowInsertingRows:=True, AllowSorting:=True, AllowFiltering:=True, userinterfaceonly:=True
          End If
     End With
End Sub

____________________________________

Ou alors une sub dans le Workbook ==>

Private Sub Workbook_Open()
     Dim SH    As Worksheet
     bHandshake = True
     For Each SH In ThisWorkbook.Worksheets
          If SH.Name Like "*## *##" Then M_Formes
          M_Proteger SH
     Next
     bHandshake = False
End Sub

Private Sub Workbook_SheetActivate(ByVal SH As Object)
     M_Proteger SH
     If SH.Name Like "*## *##" Then
          Application.ScreenUpdating = False
          M_Formes
     End If
End Sub

Private Sub Workbook_SheetDeactivate(ByVal SH As Object)
     Application.ScreenUpdating = False
     M_Proteger SH
     If SH.Name Like "*## *##" Then
          M_Synthese
     ElseIf StrComp(SH.Name, "Absences", 1) = 0 Then
          M_Comptage2
     End If
End Sub

_____________________________________

Ou peut-être désactiver la macro "Proteger" ==>

image

___________________________________________________

Je ne sais pas trop comment t'aider, désolé

Bonne nuit

à bientôt

re,

je n'ai pas lu toutes les réactions, mais je pense que ceci suffit.

Bonsoir Bart' et merci beaucoup pour ta participation

Tu as dû lire à un moment que je souhaitais les 3 zones de vacances

En réalité, oui je les veux sur un tc en paramètres mais pas en même temps sur les tableaux "2mois" :
- Si j'habite Marseille, dans les MFC, je mets ==> =NB.SI(VS_B;MAX(A1:C3))
- Si je donne le fichier à un parisien, avant de lui envoyer, je changerai le code pour la zone C en ==> =NB.SI(VS_C;MAX(A1:C3))

En réalité, j'ai remis les MFC que j'avais avant. Désolé pour l'incompréhension.

________________________________________

Les 3 types (croix rouge, croix noire et rien), ça fonctionne à merveille, merci beaucoup.

Mais quelques changements à apporter ==> Pour les croix, j'ai essayé de changer ton code, ça fait plus de 1 heure et j'avoue, que je n'ai pas réussi

- En réalité, les croix qui viennent des paramètres quand J2=1, je préférais qu'elles soient en noires et non en rouges.

- Je voulais pouvoir changer les croix (en noires, rouges ou rien) uniquement avant la date d'aujourd'hui et non après. Donc l'inverse mais ça c'était mon idée de départ mais finalement j'ai changé car avec X Cellus et les modifications apportées depuis hier, j'aimerais pouvoir changer les croix à n'importe quel moment, que ce soit avant la date d'aujourd'hui ou après. Donc à tout moment au final.

- Y'a une erreur sur la première ligne (ligne 4) d'un tableau "2mois", on arrive pas à changer les couleurs des croix.

image

Dans ce nouveau classeur ci-dessous, j'ai refait toutes les MFC comme je voulais et j'ai ouvert une feuille qui comporte l'erreur que j'ai cité juste au-dessus ==>

Merci beaucoup Bart' pour ton aide

Passe une bonne soirée

à bientôt

Bonsoir,

Hum... j'y vois un peu plus clair. J'espère avoir réalisé ce que tu demandes.

Merci de confirmer.

A bientôt et bonne nuit

Chris

Bonjour CHRIS1945 et merci beaucoup

Presque 2 heures du matin, franchement, quelle santé !
Merci de consacré tout ce temps pour des résolutions de pbs...

Désolé, je n'ai pas pu tester ton classeur car dès que je veux cliquer sur une cellule avec les croix, un message apparaît...

image

____________________________________________________________

Peut-être s'appuyer sur le classeur de BsAlv (je l'ai un peu adapté dans mon message précédent dans la mesure de mes connaissances très limitées) car dans ce dernier, il s'agit de modifier quelques aspects de fonctionnement...

Qu'en penses-tu ?

En tout cas merci beaucoup à vous 3, pour tout le temps pris

Bonne journée

à bientôt

Bonjour,

As-tu essayé avec mon fichier sans rien changé ? Chez moi il n'y a aucun problème.

En tous cas le message provient du fait que tu as mis une protection totale sur la feuille (càd sans permission de sélectionner) ou encore que tu as essayé d'encoder.

Ce n'est pas moi qui ai mis les protections, c'est toi. Je ne connais pas ton processus d'exploitation de ton classeur mais c'est à toi de déprotéger les cellules qui doivent être encodées.

Si cela ne va pas envoie le classeur qui bloque et je regarderai.

A bientôt

Chris

Bonjour CHRIS1945,

Si je débloque, ça ne fonctionne tout de même pas, j'ai essayé bien sûr...
Et à savoir qu'en version feuille protégée, j'arrive à faire le reste, double cliquer dans les prénoms, gérer les autres feuilles... il n'y a que les lignes 4, 8, etc, qui sont inaccessibles

Merci...

à bientôt

Bonjour Vodoraix,

Désolé mais je ne comprends pas ta demande. Qu'est ce qui ne va pas ?? Qu'essaies tu de faire ?

Pour moi le fichier que tu m'as envoyé fonctionne très bien mais, ne connaissant pas ton processus de travail ni toutes les autres routines (je n'ai touché qu'au VBA d'initialisation avec test sur la date du jour)

L'initialisation fonctionne, je peux atteindre les cellules des feuilles 2 mois, si j'enlève la protection, je peux changer la couleur.

Peux tu expliquer point par point ce que tu tentes de faire et qui ne fonctionne pas ?

A bientôt

Chris

Essaies dans les mois avril/mai avec ce fichier pour voir s'il y a un changement.

Et dis moi aussi si au moins l'initialisation avec test de la date fonctionne en changeant

d'onglet ?

A+

Chris

J'avais déjà des tests complets sur la v7 et tout fonctionnait comme il faut. Pour une nouvelle date et nouvel onglet, j'avais fait aussi ;-)

Y'a juste ces lignes 4, 8, etc qui ne prennent rien (ni croix, ni rien puisque ça me met, en plus, un message d'erreur et si je débloque la feuille, rien ne se passe)

J'avais déjà fait tout ça sur la V7...

Je viens de tester ce nouveau classeur V8 et pareil que la V7... Désolé...

Bonne soirée

Bart', on se déplace chez toi tonight. Si le FC Bruges gagne, il repasse devant l'OM et se qualifie pour la suite de la champion's league. Match à gros enjeu

Si y'a match nul, aucun des 2 n'est qualifié

Bon comme moi tu dois être content de la soirée foot... 2 Victoires et une qualification pour les barrages... c'est pas mal.

Pour ce qui est de ton souci, je t'avais demandé de décrire ce que tu fais exactement comme manipulation avant le message de blocage.

Fais le pas à pas pour que je puisse savoir quelle est la manœuvre qui amène l'incident car moi je n'arrive pas à reproduire l'incident.

A bientôt

Chris

Désolé CHRIS1945, je n'avais pas compris que tu me demandais du pas à pas :

Double-clique sur le classeur pour l'ouvrir ==>

image

Modification et Macros activées avec ouverture sur cette feuille ==>

image

Je teste sur la première feuille qui s'ouvre, une cellule de la ligne 4 en double-cliquant (message de blocage + et après quand je clique sur OK ==> bascule automatique sur la feuille "Paramètres") ou clic-droit (et là rien ne se passe mais c'est normal).

Je referme le classeur et j'ouvre une autre feuille "fév26 mars26" et j'ai exactement les mêmes résultats que pour l'autre feuille.

Merci CHRIS1945...

Bonne journée

Au foot, tu tiens pour quel pays ?

Pour nous c'est la cata, Bruges nous a détruit !!!!

Bonsoir Vodoraix,

AH... maintenant j'ai compris ton problème...

Cela ne vient pas de mes modifications mais bien de la gestion du Double click.

Je ne suis pas certain d'avoir bien compris le déroulement de la logique de la personne qui a écrit cette procédure, mais j'ai ajouté une instruction qui, je pense, manquait dans la procédure et maintenant le message n'apparait plus.

Essaies et dis moi si cela ne gêne pas autre chose car l'application est vraiment complexe et, comme je n'y ai pas participé depuis le début, je n'en saisi pas toutes les implications.

Quand à la deuxième problématique sportive... je suis belge... Alors... je suis plutôt heureux... désolé pour toi surtout que, malheureusement, le Portugal vous a joué un mauvais tour à la dernière seconde.

Que cela ne nous empêche pas de continuer à améliorer ton application.

A bientôt

Chris

Rechercher des sujets similaires à "bouton qui active desactive sub enlever toutes croix"