MFC spéciale

Résolu
JCB40 Messages postés 3063 Date d'inscription   Statut Membre Dernière intervention   -  
JCB40 Messages postés 3063 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
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

Configuration: Windows / Firefox 70.0


--
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
Résumé de la discussion

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.

Bobot (l'IA à votre service)
  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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

    1
    1. JCB40 Messages postés 3063 Date d'inscription   Statut Membre Dernière intervention   479
       
      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
      0
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    1
    1. JCB40 Messages postés 3063 Date d'inscription   Statut Membre Dernière intervention   479
       
      Bonjour VIA
      Merci pour ton aide
      Je te renvois un nouveau fichier avec explications plus larges
      Il y aura plusieurs lignes dans le tableau vu le nombre de joueurs
      https://www.cjoint.com/c/IKrjqAX3hFh
      J'espère que là tu vas comprendre ce que je souhaite,désolé si je me suis mal exprimé
      Cordialement
      0
  3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    1
    1. JCB40 Messages postés 3063 Date d'inscription   Statut Membre Dernière intervention   479
       
      Nos posts se sont croisés le code dans ton post 5 nickel exactement ce qu'il fallait
      Merci encore
      je vais surement revenir car je vais avoir des soucis avec les féminines.
      0
  4. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Normal le bug si on selectionne plusieurs cellules
    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
    1
    1. JCB40 Messages postés 3063 Date d'inscription   Statut Membre Dernière intervention   479
       
      pour les féminines je vais monter un fichier après on verra comment le rendre opérationnel
      Je reviens sur le fichier post 5 qui fonctionne bien ;j'ai un souci quand je renomme la feuille
      "Brulage Masculin" le code ne fonctionne plus

      J'ai trouvé et ça fonctionne
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    1
    1. DjiDji59430 Messages postés 4280 Date d'inscription   Statut Membre Dernière intervention   718
       
      Je ne suis pas d'accord
      on a en ligne 3
      1 3 2 3 2 4
      Apres le 2 éme 3 je peux mettre 2(2<3 ou meme 3 (3 n'est pas supérieur a 3) mais 4 devient rouge
      il est le premier "chiffre supérieur ,à 2 chiffres identiques présents dans cette même ligne."



      Crdlmt
      0
    2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      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
      0
    3. DjiDji59430 Messages postés 4280 Date d'inscription   Statut Membre Dernière intervention   718
       
      Ok
      0
  7. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Re

    Si j'ai compris comme il faut :
    https://mon-partage.fr/f/qZ3lWoCS/

    Cdlmnt
    1
    1. JCB40 Messages postés 3063 Date d'inscription   Statut Membre Dernière intervention   479
       
      Bonsoir
      Tu es encore un chef ça fonctionne on ne peut mieux
      Bonne soirée
      Cordialement
      0
  8. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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 ?

    1
  9. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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 ??
    1
    1. JCB40 Messages postés 3063 Date d'inscription   Statut Membre Dernière intervention   479
       
      Pour simplifier 1* en 1 1* en 2 plus possible 3, 4, 5 etc
      0
  10. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    1
  11. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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

    1
    1. JCB40 Messages postés 3063 Date d'inscription   Statut Membre Dernière intervention   479
       
      Bonsoir
      Je commence à m'y perdre l'exemple que j'ai mis post 26 n'est pas bon
      Il faut essayé avec un seul tableau pour filles et garçons
      dans l'exemple 1 6 3 2, ne peut donc venir après que 1 ou 2 plus rien ne peut venir puisque les chiffres mini sont présent
      0
  12. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    1
  13. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Mince je n'avais pas vu !

    Du coup j'en ai profité pour refaire pour brulage masculin uniquement
    https://www.cjoint.com/c/IKtpbF1yCZP
    1
  14. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Sélectionne la plage B4:H123 puis Données - Validation de données et change le maximum

    Cdlmnt
    1
  15. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    1
  16. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    On va finir par y arriver !
    https://www.cjoint.com/c/IKwoKwBlluP

    Cdlmnt
    1
    1. JCB40 Messages postés 3063 Date d'inscription   Statut Membre Dernière intervention   479
       
      Re je m'arrache les cheveux ...
      Toujours des hic
      https://www.cjoint.com/c/IKwqu32Hsuh
      Si trop hard on laisse tomber pour les filles
      Je ne vais pas abuser de ton temps
      Crdlt
      0
  17. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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"


    1
  18. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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"

    1
  19. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  • 1
  • 2
  • 3