MFC spéciale
RésoluJCB40 Messages postés 3480 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
- MFC spéciale
- Écriture spéciale facebook - Guide
- Clavier lettre spéciale - Guide
- Caractere speciale - Guide
- Série spéciale just livebox fibre - Accueil - Box & Connexion Internet
- Police spéciale instagram - Guide
45 réponses
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.
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
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
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
Pour pallier cela rajoute avant le 1er IF cette ligne
If 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 questionTa 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
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
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 ?
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 ??
Voir si celle appliquée dans la feuille Brulage (2) convient
https://www.cjoint.com/c/IKsltcAxZvv
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
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
Du coup j'en ai profité pour refaire pour brulage masculin uniquement
https://www.cjoint.com/c/IKtpbF1yCZP
Sélectionne la plage B4:H123 puis Données - Validation de données et change le maximum
Cdlmnt
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
' 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"
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"
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))
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