MsgBox Avec conditions

Résolu
Bonsoir à tous,

Je cherche à créer une message box qui apparaitrait quand une certaine case indique "FAUX" et n'apparaitrait pas si les données saisies sont correctes. (C'est une case où l'on doit saisir une date comprise entre deux date).

Merci pour votre aide.

Benoit

10 réponses

  1. Re,
    Le fait que vous effaciez la zone du premier devoir seme la pagaille pour un rajout(je peux palier a cet anomalie) et votre code pour O1 n'ira pas pour les devoirs suivants, faudra revoir votre copie (pas mal pour un "enseignent")
    D'ailleur, pourquoi effacez vous le premier devoir?
    Autre question, un devoir par trimestre ou plus ?
    0
    1. sur ma version, le rajout interro ne bug pas. Dans votre version, c'est moyen.
      0
      1. Re,

        Ma version est votre fichier que j'ai recupere et modifie, mais pas cette partie la.
        Quel EXCEL avez-vous ?
        0
    2. Bonjour,

      Code sur la page

      Private Sub Worksheet_Change(ByVal Target As Range)
      If Not Application.Intersect(Target, Range("O1:U1")) Is Nothing Then
      Call Boitededialogue
      End If
      End Sub

      Code macro
      Sub Boitededialogue()
      'informe l'utilisateur d'une mauvaise saisie de date
      If Range("P3") = "Faux" Then
      Retour = msgbox("Saisir une date entre le premier jour et le dernier jour de l'année scolaire", 48)
      End If
      End Sub

      Voilà. Ca fonctionne.
      Des idées d'améliorations ?

      Merci
      Benoit
      0
      1. Bonjour,
        Ca c'est votre demande post 4
        Quand je rentre une date dans une certaine case ("P1"), j'ai fait une formule dans une autre case ("P3")

        Maintenant c'est:
        Range("O1:U1"))
        Ca fait 7 "case"!!!!!!!!

        Correspond peut-etre au jours de la semaine ?

        avec ceci un peu mieux mais pas suffisant, il est possible de changer de cellule meme mal remplie, c'est pour cela que je demande des precisions sur le "a quoi ca sert"
        Private Sub Worksheet_Change(ByVal Target As Range)
            On Error GoTo fin:
            If Target.Count > 1 Then Exit Sub
            If Not Application.Intersect(Target, Range("O1:U1")) Is Nothing And Range("P3") = "Faux" Then
                Target.Select
                Application.EnableEvents = False
                Target = ""
                Retour = MsgBox("Saisir une date entre le premier jour et le dernier jour de l'année scolaire", 48)
            End If
        fin:
            Application.EnableEvents = True
        End Sub
        
        0
      2. @f894009Pour des raisons de présentation j'ai fusionné les cases o1 a u1. Dans le code de page il ne voulait pas prendre p1. Donc j'ai mis o1:u1 et ca fonctionne.
        donc c'est un tableau qui calcule les moyennes de mes élèves : moyenne annuelle et moyenne par trimestre. Ma macro sert à détecté les fautes de saisies des dates de devoirs et donc de bien calculer les moyennes par trimestre.
        0
      3. @Benoit_LyonRe,
        Ma macro sert à détecté les fautes de saisies des dates de devoirs et donc de bien calculer les moyennes par trimestre.
        Oui, tout a fait Thierry, je vous ai mis un exemple de code qui, comme le votre, n'est pas suffisant pour controler les cellules
        Vous pouvez mettre votre fichier a dispo sans donnees confidentielles car je ne comprends pas tout

        Pour transmettre un fichier,
        Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
        il faut passer par un site de pièce jointe tel que cjoint.com

        Allez sur ce site : https://www.cjoint.com/
        Clic sur parcourir,
        Cherche ton fichier,
        clic sur ouvrir,
        Clic sur "Créer le lien cjoint",
        Copier le lien,
        Revenir ici le coller dans une réponse...
        0
    3. Bonsoir,

      Oui toujours à l'écoute. J'ai trouvé une solution. Je la poste tout à l'heure si vous voulez donner un avis.

      Cdt
      Benoît
      0
      1. Bonjour,
        Ok, montrez la chose
        0
    4. Oui je connais. Je suis débutant. Mais je connais
      0
      1. Bonjour,
        Z'etes toujours a l'ecoute ?
        0
    5. que cette cellule
      0
      1. Re,
        Vous connaissez le VBA Excel ?
        0
    6. Quand je rentre une date dans une certaine case ("P1"), j'ai fait une formule dans une autre case ("P3")pour savoir si la date rentrée est valable (bien comprise dans la plage de date prévue).
      0
      1. Re,
        Donc, c'est en P3 qu'apparait le "FAUX" si pas ok
        dans une certaine case ("P1")
        Que cette cellule, pas d'autres?
        0
    7. Si bien sur, et je sais comment la faire,
      mais pourquoi faire simple quand on peut faire compliqué...Lol
      0
      1. Re,
        Ah oui, c'est pour une "case" ou une palanquee?
        Ce "Faux" apparait par miracle ou ..??
        0
    8. Bonjour,

      Une Mise en Forme Conditionnelle avec changement de couleur n'irait-elle pas mieux ?
      0