MACRO OU VALIDATION DONNÉE

Résolu
mimi13580 Messages postés 72 Statut Membre -  
mimi13580 Messages postés 72 Statut Membre -
Bonjour,

j'utilise déjà la validation de donnée (OUI; NON), pour les cellules B23,D23, F23 et H23.

je souhaiterai que l'opérateur puis répondre par OUI ou NON, uniquement si:

-B9, B11 et B16 sont renseigné pour la cellule B23
-D9, D11 et D16 sont renseigné pour la cellule D23
-F9, F11 et F16 sont renseigné pour la cellule F23
-H9, H11 et H16 sont renseigné pour la cellule H23

Si possible avec un message " répondre au question, avant de répondre OUI ou NON"

Merci d'avance

9 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonsoir

    système de validation à adapter selon vos données, en se passant de VBA

    en B23 la validation à placer

    en Z1 le texte: Répondre d'abord aux questions ou autre
    nommer la cellule Z1:nom alerte

    en Y1 Y2 entrer Oui non
    nommer ce champ liste

    en B23 pour la validation par liste avec cette formule
    =SI(OU(B9="";B11="";B16="");alerte;liste)

    à faire avec les mêmes textes ou de cellules de référence différents pour chaque ligne de réponse, avec chaque fois un nom différent

    crdlmnt

    Errare humanum est, perseverare diabolicum
    0
  2. mimi13580 Messages postés 72 Statut Membre
     
    Bonjour Vaucluse, le forum,

    Merci pour votre réponse, mais votre méthode ne fonctionne pas.

    Merci
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Voila un retour bien catégorique, mais j'ai peu l'habitude de donner des solutions qui ne fonctionnent pas! :-))
      voyez ici, la validation en A4 selon ce qui se passe en A1,A2,A3
      https://www.cjoint.com/c/EKitrKFL1LJ
      crdlmnt
      0
  3. mimi13580 Messages postés 72 Statut Membre
     
    Re,

    Effectivement, votre test fonctionne bien,
    Mais si je clique sur le message dans la liste déroulante, la cellule l'accepte, hors moi je souhaite avoir un message qui bloque la cellule et que l'on puisse répondre par oui ou par non uniquement après avoir renseigné les cellules.

    PS: très bonne explication sur le classeur:)

    Mimi
    0
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonsoir le fil,

    regarde comme cela,

    https://www.cjoint.com/c/EKivFrabiTj

    il faut deux plage nommées, une pour OUI et NON et une pour Répondre aux questions
    pour aller plus loin, il faudra passer par du VBA si tu as quelques notions
    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mimi13580 Messages postés 72 Statut Membre
     
    Bonjour le forum,

    Merci pour vos réponse, mais je voyais plus une validation de donnée pour la liste OUI / NON et une macro avec Msgbox si les cellules ne sont pas renseignées.

    Pour répondre à mike, je connais un peux le VBA.

    merci d'avance
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Bonjour
      un essai ici
      https://www.cjoint.com/c/EKjgO7qtPKJ
      crdlmnt
      0
  7. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    colle ce code dans les propriétés de ta feuille

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    If Not Intersect(Target, Union([B23], [D23], [F23], [H23])) Is Nothing Then
    Application.EnableEvents = False
    If Target(-13, 1) = "" Or Target(-11, 1) = "" Or Target(-6, 1) = "" Then MsgBox _
    "Vous devez répondre aux questions précédentes", , "pour accéder à cette réponse"
    Application.EnableEvents = True
    End If
    End Sub


    ou plus élaboré avec sélection des cellules sans réponse

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    If Not Intersect(Target, Union([B23], [D23], [F23], [H23])) Is Nothing Then
    Application.EnableEvents = False
    If Target(-13, 1) = "" Or Target(-11, 1) = "" Or Target(-6, 1) = "" Then
    MsgBox "Vous devez répondre aux questions précédentes", , "pour accéder à cette réponse"
    If Target(-6, 1) = "" Then Target(-6, 1).Select
    If Target(-11, 1) = "" Then Target(-11, 1).Select
    If Target(-13, 1) = "" Then Target(-13, 1).Select
    End If
    Application.EnableEvents = True
    End If
    End Sub


    https://www.cjoint.com/c/EKjhzb21L3j
    0
  8. mimi13580 Messages postés 72 Statut Membre
     
    Bonjour le forum,

    Merci Vaucluse, merci Mike-31, parfait...

    Thank you of lot.

    Mimi
    0
  9. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    avec les codes VBA il est possible de jouer et aller plus loin dans les applications, regarde ce fichier
    https://www.cjoint.com/c/EKjq6Fflrzj
    0
  10. mimi13580 Messages postés 72 Statut Membre
     
    Re,

    C'est pas mal aussi, merci beaucoup :)

    Mimi
    0