Message d'erreur excel si deux cellules complétées

Résolu
Julie0609 -  
 Julie0609 -
Bonjour à tous,

Je travaille actuellement sur un fichier pour lequel je rencontre un problème : j'aimerais faire apparaitre un message d'erreur si deux cellules sont toutes les deux complétés en même temps. Ces cellules sont formés par la fusion de 5 cellules chacunes.

Comment dois-je faire ?

Merci de votre aide,

Julie

5 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonsoir

    1° Eviter les cellules fusionnés si on a à travailler dessus ensuite par formule ou par macros, ça pose toujours problème

    2° Pas très clair ! Peux tu poster un exemple de ton fichier sur cjoint.com en indiquant les cellules concernées et revenir ici indiquer le lien fourni

    Cdlmnt
    0
    1. Julie0609
       
      Bonsoir,

      J'ai pas eu le choix de fusionner mes cellules car je suis sur un calendrier. Le fichier étant plutôt confidentiel, je vais joindre seulement une partie de mon fichier.

      http://cjoint.com/?3Air3InNGmr

      Merci pour ton aide,

      Julie
      0
  2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    je rejoins complètement Via et j'en profite pour lui souhaiter une bonne année, (ainsi qu'à tous, en fait)

    ceci dit, vous pouvez carrément interdire une entrèe dans une cellule si une autre est déjà renseignée:
    (si vous tenez à vos cellules fusionnées, adressez la solution à chacune des 1° cellule en haut du champ)
    par exemple, pour éviter dune entrée en B1 si A1 est renseignée
    sélectionnez B1
    ruban / Données / Validation "personnalisé"
    entrez la formule:
    =$A1=""

    et bien sur l'inverse en A1 via B1
    les options de validation vous donne la possibilité d'interdire ou d'avertir (voir l'onglmet "alerte d'erreur" dans la fenêtre de validation

    crdlmnt

    0
    1. Julie0609
       
      Bonsoir,

      Je te souhaite également une bonne année et surtout une bonne santé.

      J'ai pensé à ta solution mais j'ai déjà une liste déroulante sur ces cellules et je ne peux pas par conséquent utiliser ta technique.

      Je remets le lien de téléchargement de mon exemple de fichier : http://cjoint.com/?3Air3InNGmr

      Merci de ton aide,

      Julie
      0
      1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > Julie0609
         
        Bonsoir Julie
        Bonsoir Vaucluse, merci de tes voeux, je t'adresse tous les miens, à toi aussi Julie ;)

        La solution de Vaucluse est possible en passant par un nom intermédiaire qui selon le cas va renvoyer à la liste de choix ou à rien, exemple d'après ton fichier :
        https://www.cjoint.com/?0AisHlpHTCZ

        Cdlmnt
        0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Si tu inverses E18 et E19 tu peux mettre ça en validation par liste :
    =DECALER($E$17;;;($S$8="")+1;)

    eric
    0
  4. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Re

    un petit modèle ici.

    C'est une "ruse" qui utilise les cellules 15 et E16, car pour pouvoir utiliser une formule dans la validation dans l'option liste, il faut que tout se passe dans la même colonne.
    (les cellules E15 et E16 renvoie donc les valeurs de K8 et S8
    Voyez les formules de validation

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

    Par ailleurs il est aussi possible en VBA d'effacer un champ quand on rentre une valeur dans l'autre, mais sans avertissement (pour ce qui me concerne)

    crdlmnt
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      ... une petite suite
      pour tenir compte de E1, placer en E15 la formule:

      =SI(E1="4*";S8;0)

      et même chose en E16 pour K8

      crdlmnt
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Julie0609
     
    Bonjour,

    Merci à tous, tout fonctionne correctement et c'est ce que je voulais. Cependant si en E1 j'ai autre chose d'écrit, je retrouve les listes alors que je souhaiterais ne pas pouvoir choisir dans ce cas.

    Merci,

    Julie
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      As-tu testé ma proposition ?
      eric
      0
    2. Julie0609 > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Bonjour Eric,

      Je n'arrive pas avec ta proposition, ça ne me mets pas la liste déroulante dans ma cellule après.

      Julie
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Ben justement, ça ne te la met que si l'autre cellule est vide pour n'autoriser qu'une seule saisie.
      Tu peux mettre ton message d'alerte dans le 'message de saisie' de la validation
      eric

      edit : et pour tenir compte de E1 :
      =DECALER($E$18;;;ET($S$8="";$E$1="4*")+1;)

      Ex : https://www.cjoint.com/c/EAjk2SkXXqA

      edit2 :
      encore plus simple et tu peux conserver l'ordre que tu veux entre E18 et E19 :
      =SI(($E$1="4*")*($S$8="");$E$18:$E$19;"")
      0
    4. Julie0609 > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Merci Eric ! Ta première formule fonctionne.

      Pour améliorer mon document en A1 je peux avoir ou "1*","4*" ou "6*" est -il possible par le même système d'avoir en possibilité pour le "1*" juste une case vide, pour le 4* la pratique que j'ai demandé plus haut et pour 6* que incluse ?

      Merci de ton aide,

      Julie
      0
    5. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Je crains que tu ne compliques inutilement mais bon :
      =SI($S$8<>"";"";SI($E$1="1*";$E$18;SI($E$1="6*";$E$19;SI($E$1="4*";$E$18:$E$19;""))))

      https://www.cjoint.com/c/EAjnwdHR91U
      eric
      0