XL 2019 Validation de données (liste) avec condition

Nenesse45

XLDnaute Nouveau
Bonjour à tous,

j'ai un souci mais je ne sais pas par quel bout commencer pour le résoudre:

Dans une feuille, j'ai un tableau dans lequel je liste l'ensemble du "matériel" d'un parc, par exemple:

NOMTYPEMARQUEmodèle
P-405-01voiturePeugeot405
S-RV90-01motoSuzukiRV90
Y-XS500-01motoYamahaXS 500
R-Nev-01voitureRenaultNevada
H-CB77-01motoHondaCB 77

Ce tableau listing peut-être complété par de nouvelles lignes régulièrement et sans classement ou ordre prédéfini de type. Tantôt des voitures, tantôt des motos.

Et dans une autre feuille dédiée Moto, j'ai un autre tableau.
Dans la première colonne NOM, je souhaiterais avoir une liste déroulante (et donc une validation de données en liste) où seuls les noms du premier tableau ayant pour type moto apparaissent.

Et ensuite je complète les autres colonnes du tableau Moto avec les caractéristiques propres aux motos etc.
NOMBÉQUILLECAFÉ RACERHAUTEUR DE SELLE
S-RV90-01latéralenon800mm
H-CB77-01centraleoui780mm
Y-XS500-01centralenon810mm

Et idem pour une autre feuille, dédiée cette fois Voiture

Auriez-vous une piste avec une validation de données appelant une autre formule par exemple?

Merci de votre aide.


PS: dans un monde utopique, si il existait un code VBA permettant de mettre à jour automatiquement les tableaux Moto ou Voiture dans leur feuille respective, je serai preneur, mais là on atteint encore un autre niveau... 😅
 
Dernière édition:
Solution
Hello!

Je ne sais pas si ça intéresse grand monde mon cas de figure mais j'ai finalement trouvé une solution qui me convient... avec PowerQuery 😅

Maintenant que j'y pense, ça me parait évident, mais pour répondre à mon besoin, j'ai crée une feuille masquée PowerQuery, dans laquelle j'ai créé deux requetes PowerQuery pour ajouter deux tableaux:
  • Un tableau "MotoPowerQ" qui est une requête qui filtre le tableau "Equipements" uniquement sur les Motos
  • Un tableau "VoiturePowerQ" qui est une requête qui filtre le tableau "Equipements" uniquement sur les Voitures
Ensuite, sur la feuille Moto, la première colonne de mon tableau MotoOnly est une liste validation de données avec uniquement la liste Moto de la requête MotoPowerQ...

Nenesse45

XLDnaute Nouveau
Hello.

Merci pour votre réponse.

Cela pourrait être une solution, mais malheureusement ce n'est pas aussi simple et je vais le préciser dans mon premier post maintenant que je me rends compte du manque de précision dans ma demande d'aide:

le tableau de la première feuille avec l'ensemble des matériels est évolutif et l'ordre des matériels référencés complétement aléatoires. je peux ajouter régulièrement de nouveaux matériels sans ordre prédéfini.

Donc je ne peux pas nommer mes plages comme dans votre exemple 😕.
 

Nenesse45

XLDnaute Nouveau
Bonsoir,
avec un peu de Power query...
Cordialement MP59
Bonsoir,

ça à l'air d'être puissant mais je cherche à comprendre comment vous êtes parvenu à ce résultat.

J'imagine que vous êtes parti de la feuille LISTE INITIALE qui a été éclatée via Power Query mais... ?

je crois qu'il va déjà falloir que je me plonge dans des tutos Power Query. Mais c'est une piste qui m' intéresse beaucoup.

Merci
 

Nenesse45

XLDnaute Nouveau
Hello,

je viens d'essayer avec PowerQuery @MP59

C'est vraiment pas mal mais le hic est que ça manque de "dynamique"!
même si la case est cochée pour actualiser les données en arrière-plan dans les propriétés de la requête, le tableau "destination" n'est pas actualisé si j'ajoute ou je supprime une ligne dans le tableau "source" .

Est-ce qu'il y aurait un moyen d'avoir un bouton dans la feuille pour demander l'actualisation des données? Plutôt que de passer par le ruban pour aller chercher Données, Actualiser tout.
Un bouton directement sur la feuille en couleur (avec une forme) serait plus user-friendly pour des profanes qui ne font que de la saisie?

Merci
 

WTF

XLDnaute Impliqué
Bonjour Nenesse,
TU peux jouer sur les propriétés d'actualisation :
1612514781314.png

1612514788535.png

A voir si tu trouves ton bonheur...
 

Nenesse45

XLDnaute Nouveau
Bonjour Nenesse,
TU peux jouer sur les propriétés d'actualisation :
Regarde la pièce jointe 1094339
Regarde la pièce jointe 1094340
A voir si tu trouves ton bonheur...
Hello et merci.

J'avais bien vu ces options. Mais pour une personne qui fait de la saisie, il faut qu'elle attende une minute (temps mis pour "Actualiser toutes les (1) minute(s)" pour que le tableau soit mis à jour, ce n'est pas très "naturel".

Un bouton serait plus pertinent je pense. Sinon il va falloir que j'ajoute une note pour indiquer les manipulations à faire pour actualiser en passant par le ruban.
 

Nenesse45

XLDnaute Nouveau
Hello,

à la base, mon scenario impliquait de rajouter de nouvelles colonnes pour remplir manuellement de nouvelles caractéristiques sur un type d'équipements.

Avec Power Query, j'ai bien la création dynamique d'un tableau filtré selon le type d'équipements.

J'ai rajouté des colonnes à ce tableau, sans passer par Power Query qui, sauf erreur de ma part, ne permet pas d'ajouter des colonnes vierges, sans calculs, pour les remplir manuellement.

Or ces colonnes ajoutées hors Power Query sont décalées par rapport aux colonnes Power Query lors de l'actualisation du tableau suite à l'ajout d'un nouvel équipement.
Par exemple, dans mon tableau global j'ajoute 3 motos au départ. J'actualise mon tableau Power Query Motos et j'obtiens le tableau ci-dessous. Les colonnes BÉQUILLE, CAFÉ RACER et HAUTEUR DE SELLE sont ajoutées manuellement, hors Power Query, et je remplis manuellement les cellules.

NOMBÉQUILLECAFÉ RACERHAUTEUR DE SELLE
S-RV90-01latéralenon800mm
H-CB77-01centraleoui780mm
Y-XS500-01centralenon810mm

Dans mon tableau global, j'ajoute une quatrième moto.
Quand j'actualise mon tableau Motos, le décalage se crée. La nouvelle moto en vert s'est bien ajoutée en dernière ligne, mais les valeurs en rouge des cellules ajoutées hors Power Query se décalent d'une ligne vers le bas, je me retrouve alors avec:


NOMBÉQUILLECAFÉ RACERHAUTEUR DE SELLE
S-RV90-01latéralenon800mm
H-CB77-01centraleoui780mm
Y-XS500-01
H-CB77-02centralenon810mm

Power Query n'est pas adaptée je pense pour ajouter de nouvelles colonnes non intégrées, d'où le décalage des valeurs.

Ma demande initiale sur le premier post reste toujours d'actualité :confused:
 

MP59

XLDnaute Occasionnel
Bonjour Nenesse45 et autres intervenants,
le tableau de départ "liste initiale" est un tableau structuré, si tu ajoutes des colonnes elles seront prises en compte par PQ lors de l'actualisation.
voir fichier joint : j'ai ajouté modèle 2 et voiture 7.
 

Pièces jointes

  • Nenesse45_MP.xlsx
    31 KB · Affichages: 8

Nenesse45

XLDnaute Nouveau
Ok Je vois.
Par contre, ça suppose que le tableau "liste initiale" possède autant de colonnes qu'il y a de caractéristiques propres à chaque type d'équipement, c'est ce que je voulais éviter.
Sinon ça suppose que, quand j'ajoute un nouvelle équipement, je scrolle les colonnes jusqu'à tomber sur la ou les colonne(s) "caractéristique" qui correspond(ent) bien à mon type d'équipement, et il faut un controle d'erreur pour chaque colonne pour vérifier que la caractéristique remplie corresponde bien au type d'équipement.
Par exemple, si j'ajoute un équipement type Voiture, je dois vérifier que je remplis bien la colonne caractéristique "airbag" qui concerne que le type Voiture et non la colonne caractéritique "Hauteur de selle" qui concerne que le type Moto. C'est un peu lourd comme traitement et les erreurs faciles.

Je souhaitais remplir le tableau liste initiale avec les colonnes pour les "caractéristiques" communes à l'ensemble des types équipements puis, en extraire les lignes de chaque type pour créer un nouveau tableau pour chaque type et y ajouter de nouvelles colonnes avec des caractériques propres, colonnes que je remplis manuellement.

Power Query ne s'adapte pas à mon besoin.

Pour moi le plus simple reste de créer un tableau pour chaque type, avec les colonnes que je souhaites et dans la première colonne, une liste validation de données avec les noms des équipements et un seul et unique controle d'erreur: si je suis dans le tableau type Voiture, je vérifie que le nom choisi dans la liste déroulante est bien le nom d'une voiture.
 

Nenesse45

XLDnaute Nouveau
Re,
Ayant abandonné l'idée d'utiliser Power Query qui ne s'adapte pas à mes besoins, je relance le sujet en partant sur mon idée première sur mon premier post: à savoir une liste de validations de données qui soit filtrée sur un type d'équipements spéciques.

C'est à dire dans l'onglet Moto, une liste de validation de données avec les noms des équipements filtrées uniquement sur le type Moto présents dans le tableau de l'ensemble du matériel.
Et dans l'onglet Voiture, une liste de validation de données avec les noms des équipements filtrées uniquement sur le type Voiture présents dans le tableau de l'ensemble du matériel.

Pensez-vous que cela serait possible s'il vous plait?
 

Nenesse45

XLDnaute Nouveau
Hello!

Je ne sais pas si ça intéresse grand monde mon cas de figure mais j'ai finalement trouvé une solution qui me convient... avec PowerQuery 😅

Maintenant que j'y pense, ça me parait évident, mais pour répondre à mon besoin, j'ai crée une feuille masquée PowerQuery, dans laquelle j'ai créé deux requetes PowerQuery pour ajouter deux tableaux:
  • Un tableau "MotoPowerQ" qui est une requête qui filtre le tableau "Equipements" uniquement sur les Motos
  • Un tableau "VoiturePowerQ" qui est une requête qui filtre le tableau "Equipements" uniquement sur les Voitures
Ensuite, sur la feuille Moto, la première colonne de mon tableau MotoOnly est une liste validation de données avec uniquement la liste Moto de la requête MotoPowerQ, les autres colonnes étant des caractéritiques propres aux motos
Et sur la feuille Voiture, la première colonne de mon tableau VoitureOnly est une liste validation de données avec uniquement la liste Voiture de la requêteVoiturePowerQ, les autres colonnes étant des caractéritiques propres aux voitures

Je cloture ma demande ici.
 

Discussions similaires

Statistiques des forums

Discussions
313 258
Messages
2 096 614
Membres
106 684
dernier inscrit
ekouepatrick