MFC spéciale
RésoluJCB40 Messages postés 3063 Date d'inscription Statut Membre Dernière intervention -
Dans le fichier ci-joint je cherche à mettre une MFC répondant à critères explications dans le fichier.
https://www.cjoint.com/c/IKqqvVoEBMh
Pas trouvé de solution
Merci pour votre aide
--
Commence par faire le nécessaire ,puis fait ce qu'il est possible de faire et tu réaliseras l'impossible sans t'en apercevoir
Si la réponse vous satisfait, le merci à gauche vous attend.
45 réponses
- 1
- 2
- 3
La problématique concerne la mise en place d'une macro (MFC) répondant à des critères précis décrits dans le fichier fourni. La solution la plus avancée repose sur une macro Worksheet_Change appliquée à une plage spécifique (B2:H4) qui vérifie les saisies et colore en rouge les entrées non conformes, avec une adaptation possible pour le cas féminin. Des variantes abordent des validations de données personnalisées et l’élaboration de règles selon le genre, ainsi que des ajustements pour éviter les erreurs lors de sélections multiples. D’autres contributions proposent des alternatives en macro ou en formule pour sécuriser l’entrée et répondre aux différents scénarios, tout en fournissant des exemples de code et des conseils de mise en œuvre.
-
Bonsoir,
si on reprend ton fichier, ligne 2 tu as deux fois 1 que tu colorises et deux fois 2 dont tu n'en colorise qu'un et une fois 3 qui est supérieure que tu ne colorises pas ce qui n'est pas logique d'après ce que tu as écris
"Quelle MFC appliquer par ligne pour mettre en rouge la cellule qui contient un chiffre supérieur ,à 2 chiffres identiques présent dans cette même ligne." tu as deux fois 1 et deux fois 2 qui devraient être colorisées en bleu et en rouge la cellule contenant 3 en rouge parce que supérieure
-
Bonsoir Mike
Merci pour ta réponse
Les couleurs mises ne sont là que pour différencier les chiffres figurant dans la ligne.
Le but recherché a partir du moment ou 2 chiffres identiques sont dans une ligne on ne
peux plus mettre un chiffre de valeur supérieure
exemple dans la ligne 2 cellule F2 si je mets un 2 cette cellule doit se colorier en rouge
-
-
Bonjour à vous deux
Par MFC je ne vois pas non plus
Par macro :Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("B2:H4")) Is Nothing Then col = Target.Column ligne = Target.Row verif = False For n = 2 To col - 1 a = Application.WorksheetFunction.CountIf(Range(Cells(ligne, 2), Cells(ligne, col - 1)), Cells(ligne, n)) If a > 1 And Target.Value > Cells(ligne, n) Then verif = True Next If verif = True Then Cells(ligne, col).Interior.Color = 255 Else Cells(ligne, col).Interior.Pattern = xlNone End If End Sub
Cdlmnt
Via
-
Bonjour JCB
Comme je te le disais précédemment la solution passe par une macro que je t'indiquais
https://mon-partage.fr/f/jXAXTBW0/
J'ai appliqué la macro à la feuille 1
En feuille 2 même type de macro mais qui au lieu de colorer en rouge empêche de rentrer la valeur non valide
Par contre si c'est pour répondre aux attentes de gigipong il parlait dans sa demande du cas supplémentaire des équipes féminine qui n'est pas pris en compte ici, mais il sera facile d'adapter le macro dans ce sens
Cdlmnt
Via
-
Normal le bug si on selectionne plusieurs cellules
Pour pallier cela rajoute avant le 1er IF cette ligneIf Target.Cells.Count > 1 Then Exit Sub
Pour les féminines quel est exactement les conditions à prendre en compte je n'ai pas trop compris l'histoire de 10 possible
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
Bonjour DjiDji
Ta formule de MFC est intéressante mais ne fonctionne pas selon l'attente, ainsi en G3 elle autorise les valeurs 3 et 4 qui sont interdites puisque deux fois 2 dans les cellules précédentes il ne peut y avoir de nombre supérieur à 2
Cdlmnt
-
-
Je ne te parle pas de la ligne 3 du tableau mais de la cellule G3 (ligne 2 du tableau) où on peut rentrer des valeurs supérieures à 2 alors qu'il y a deux 2 avant
Ta MFC fonctionne lorsque le chiffre en doublon est aussi le max de la plage mais pas dans le cas contraire, comme en ligne 2 du tableau le doublon est 2 et le nombre max 4 mais qui n'est pas un doublon -
-
-
Re
Si j'ai compris comme il faut :
https://mon-partage.fr/f/qZ3lWoCS/
Cdlmnt
-
Re
Pas sur de comprendre !
Tu veux dire par exemple que si en J1 il a été joué en 8 et en J2 en en 7 il ne sera possible en J3 que de jouer en 8 ou inférieur ? et si en J3 il est joué en 5 par ex , cela ne change rien on peut jouer en 8 ou inférieur ?
Par contre si en J1 c'est 8 et en J2 c'est 11, en J3 on peut jouer en 11 et en dessous ?
Cela reviendrait à dire qu'en J2 on peut jouer en n'importe quoi mais qu'à partir de J3 on ne peut pas jouer au dessus du max des journées précédentes, non ?
Et il n'y a plus de différence masculin féminin ?
-
Tu me dis exact mais ton dernier exemple contredit cela, car on ne peut pas jouer au dessus du max impliquerait qu'on ne peux pas jouer en 5 mais dans dans ton ex tu dis on ne peux plus jouer en 4
Ce qui voudrait dire que la règle du doublon s'applique aussi, le max est 4 mais comme il y a deux 3 on ne peut plus jouer au-dessus et donc pas en 4 ??
-
Dans ce cas plus besoin de macro une MFC devrait suffire
Voir si celle appliquée dans la feuille Brulage (2) convient
https://www.cjoint.com/c/IKsltcAxZvv
-
Re
J'étais absent cet aprem
Résumons :
Pour les hommes comme pour les femmes n° de 1 à 9, brulage par rapport aux 2 plus petits n° précédemment, dans ton exemple 1 6 3 2, ne peut donc venir après que 1 ou 2
Pour les femmes en plus sont acceptés 10 et 11 dans tous les cas
Donc pas besoin d'un tableau spécial féminine
Merci de me confirmer que je raisonne enfin correctement
Si c'est bien le cas je pense que la macro est inutile et qu'une MFC suffira
-
Bonjour
Pour moi j'ai fini pour l’instant je t'ai envoyé le fichier hier (message 30) , tu ne l'as pas vu ?
Il est pour garçons et filles mais teste le, s'il fonctionne comme tu veux je modifierai la macro pour avoir une macro pour une feuille garçon uniquement
-
Mince je n'avais pas vu !
Du coup j'en ai profité pour refaire pour brulage masculin uniquement
https://www.cjoint.com/c/IKtpbF1yCZP
-
Bonjour
Sélectionne la plage B4:H123 puis Données - Validation de données et change le maximum
Cdlmnt
-
-
Re
La macro de ton fichier considéré comme fini avait encore des erreurs (du aux rajouts de colonnes)
J'ai planché sur les brulages des filles et je pense que j'ai pu les intégrer correctement dans la macro
Fais tous les tests nécessaires et tu me diras
https://www.cjoint.com/c/IKwamDQNQkP
Cdlmnt
-
-
Il suffit de compléter ces 2 lignes de la macro
' coloration cellule If Target.Value < 10 And Target.Value > bruleM Then Cells(ligne, col).Interior.Color = 255 If Target.Value > 9 And Target.Value > bruleF Then Cells(ligne, col).Interior.Color = 255
la 1ere par:Msgbox "BM"
la 2nde par:Msgbox "BF"
-
Sans doute parce que tu as rajouté après les lignes et non à la fin des lignes comme je disais
Ta macro modifiée doit donner ceci :' coloration cellule If Target.Value < 10 And Target.Value > bruleM Then Cells(ligne, col).Interior.Color = 255:Msgbox "BM" If Target.Value > 9 And Target.Value > bruleF Then Cells(ligne, col).Interior.Color = 255:Msgbox "BF"
-
Re,
Je devais être à l'ouest ou fatigué hier
Dans la macro dans la partie brulage en feminin - min pour >9 tu as la boucle :For n = 4 To col - 1 If Cells(ligne, n) > 10Then m(n - 3) = Cells(ligne, n) Next
Bien sûr ce n'est pas >10 qu'il faut mais >9
On va y arriver !
Enfin si tu veux contrôler par la validation de données l'entrée différente pour masculin et féminind'un nombre entier, tu effaces ta validation actuelle , tu sélectionne toute la plage - Validation de données et dans Autorise tu choisis Personnalisé et dans Formule tu entres :
=ET(ENT(D4)=D4;SI($C4="M";D4<10;D4<12))
- 1
- 2
- 3