web-dev-qa-db-fra.com

Combinez la validation de liste et de données de formule personnalisées dans une cellule d'Excel sans vba

Quelqu'un peut-il aider à combiner la validation de données de formules et de listes personnalisées dans une seule cellule sans utiliser vba? J'ai une formule personnalisée qui valide les données si la logique est VRAIE, mais je veux que l'utilisateur puisse également effectuer une sélection dans une liste déroulante. Toute aide sera appréciée. Merci.

Désolé si la question n'était pas assez claire. S'il vous plaît voir ci-dessous:

 enter image description here

Dans cet exemple, même si l'utilisateur peut effectuer une sélection dans une liste déroulante, s'il sélectionne 7 pour la cellule A2, la validation doit générer une erreur car elle n'est pas inférieure ou égale à la cellule B2. Est-ce plus clair?

4
Tunde Awosanya

Cette solution non-VBA combine une liste de choix conditionnelle avec une liste de sélection déroulante. Elle fournit 2 listes de sélection différentes, dépendant de la valeur d'une autre colonne.

C'est différent que la méthode souvent partagée cascading-lists (mais voyez le lien link pour certaines techniques géniales)

Disons que vous avez une table avec deux colonnes. Le champ 1 peut contenir n'importe quoi:

a
box
cat
z

Condition: La validation de Field2 doit afficher la liste déroulante List1 lorsque Field1 contient a, et afficher List2 lorsque Field1 contient autre chose.

Solution: S'appuie sur le fait qu'une formule conditionnelle Excel peut renvoyer un plage contenant une liste d'éléments. 

Étapes:

  • Créez une liste de valeurs de liste de choix sur une feuille de recherche et nommez-la List1.
  • Créez une autre liste sur la feuille de recherche et nommez-la List2.
  • Sur votre feuille d’entrée, insérez un objet Table contenant 2 colonnes. Nommez la table MyTable et les champs Field1 et Field2

     enter image description here

  • Créez le nom défini suivant et appelez-le ValidFmla. C'est la sauce secrète:

    =IF(MyTable[@Field1]="a", List1, List2)

  • Sélectionnez les cellules d'entrée dans Champ2, puis cliquez sur Validation dans le ruban de données.

  • Choisissez le type "Liste" et entrez =ValidFmla
  • testez-le:

     enter image description here  enter image description here

Avantages:  

  • Cela ne cassera pas si vous modifiez le nom de votre table, les noms de champs, les noms de liste ou le nom de formule de validation - tous les éléments dépendants sont mis à jour automatiquement.

  • prend en charge toutes les conditions complexes souhaitées, à condition que votre formule de validation retourne une plage de listes. La validation ne doit pas nécessairement être basée sur les valeurs de Champ1. 

  • les listes de validation peuvent être appelées n'importe quoi. la méthode des listes dépendantes nécessite de nommer les plages de liste de validation identiques aux valeurs du premier champ.

Notez que vous devez not utiliser un objet Table pour utiliser cette méthode. Toutefois, l'utilisation de l'objet Table fournit un référencement structuré dans la formule de validation, ce qui constitue un moyen plus intelligent et plus lisible de créer des formules. 

3
johny why

Enregistrer nous voulons configurer DV dans la cellule B1 so:

  • si un numéro est entré, il doit être inférieur à la valeur dans A1
  • si texte est entré, il doit figurer dans la liste de D1 à travers D3

Voici la formule DV pour le faire:

 enter image description here

La formule combine des tests numériques avec la possibilité de limiter la saisie à une liste fixe.

1
Gary's Student

Je sais que ce fil est plus ancien, mais par souci d'exhaustivité, je vais également proposer une autre solution non-VBA. Je ne crois pas que le PO cherchait des méthodes pour fournir des listes dépendantes conformément à la plupart des solutions proposées. Il souhaite plutôt que sa liste d'options existe en l'état et offre plutôt une validation supplémentaire sur la sélection effectuée.

Cela nécessite en fait d'utiliser une fonctionnalité différente d'Excel pour vous fournir cet aperçu plus facilement. Mise en forme conditionnelle. Selon la capture d'écran de l'OP fournie à l'origine:

Mettez en surbrillance la colonne A, cliquez sur Mise en forme conditionnelle (onglet Accueil pour moi)> Nouvelle règle. Sélectionnez la dernière option, la formule personnalisée un, et utilisez la formule:

=$A1>$B1

Cliquez sur le bouton Formatage, modifiez l’arrière-plan ou une autre couleur pour rendre la validation évidente, puis cliquez sur OK. Voir capture d'écran pour les résultats, vous configurez toujours votre liste de validation des données comme d'habitude pour permettre à l'utilisateur de sélectionner des valeurs. Une chose à noter est que cela n'arrête pas la saisie, il fournit simplement une confirmation visuelle que la saisie est fausse.

Capture d'écran des résultats

0
F Scott Gale