XL 2016 Mise en évidence d'erreur lors de l'utilisation de listes déroulantes en cascade

thomasdu43

XLDnaute Occasionnel
Bonjour,
J'ai créer un fichier avec des listes déroulantes en cascade qui s'appuient sur un base de données. Je souhaiterai appliquer à mes cellules avec liste déroulante une mise en forme lorsque le résultat de la liste déroulante n+1 n'est pas en phase avec le résultat de la liste déroulante n qui la précède.
Je vous remercie de votre aide.
 

thomasdu43

XLDnaute Occasionnel
Bonjour,

1 - Vous avez excel 2016, utilisez les tableaux structurés et leurs fonctionnalités pour laisser excel gérer ce qu'il sait très bien faire.
2 - évitez les calculs sur des colonnes entières (ex:$A:$A) et de multipliez x fois la même formule (surtout les matricielles) pour le même résultat.
pour cela mettez la formule dans une cellule, nommez la et faites y référence dans les autres formules.
3 - évitez la multiplication des noms calculés sur des colonnes entières genre : DECALER(BD_Borne!$B$2;;;NBVAL(BD_Borne!$A:$A)-1)
(même solution que pour le 2 si le besoin est incontournable).

4 - Dans le classeurs joint les tableaux structurés sont nommés et préfixés par TBD_ suivi du nom de la feuille.
Regarder comment sont définis les noms Choix1, Choix2, Choix3, Choix2Borne (=TBD_Borne[Borne]) (en lieu et place de la formule décaler précédente).

5 - éliminez les formules qui n'ont plus lieu d'être (DB_Générale et autres)

J'ai fait quelques changements (noms, formules), à vous de finir et vérifier les résultats, pas à pas.

Pour le reste nous verrons plus tard.

Cordialement
Merci, très clair.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

bonjour,

Dans le fichier joint je me suis occupé à réduire les temps de calcul en supprimant et remplaçant les formules matricielles et en ajoutant une colonne 'Choix' aux tableau BD_Générale et BD_Sécurisation.

Chaque cellule de ces colonnes 'Choix' teste si la ligne courante répond au choix fait dans la feuille 'Choix'
Deux noms on étés ajoutés (Index_Bd_Générale et Index_Bd_Sécurisation) renvoient l'index d'ordre de la ligne correspondante ( ou 0 si pas de ligne)

Ce sont ces noms (et leur valeur) qui sont employés dans la feuille Choix pour retrouver les informations. Je n'ai pas fait de test sur leur valeur dans les formules de la feuille 'Choix' (ex := Si(Index_Bd_Générale>0;Index(.......);"Ooops blème."). Je vous laisse le faire au besoin.

Les lignes de codes de la feuille choix ont été commentées en attendant la suite.

cordialement
 

Pièces jointes

  • thomasdu43-4-Rob.xlsm
    228.9 KB · Affichages: 6

thomasdu43

XLDnaute Occasionnel
Bonjour,

bonjour,

Dans le fichier joint je me suis occupé à réduire les temps de calcul en supprimant et remplaçant les formules matricielles et en ajoutant une colonne 'Choix' aux tableau BD_Générale et BD_Sécurisation.

Chaque cellule de ces colonnes 'Choix' teste si la ligne courante répond au choix fait dans la feuille 'Choix'
Deux noms on étés ajoutés (Index_Bd_Générale et Index_Bd_Sécurisation) renvoient l'index d'ordre de la ligne correspondante ( ou 0 si pas de ligne)

Ce sont ces noms (et leur valeur) qui sont employés dans la feuille Choix pour retrouver les informations. Je n'ai pas fait de test sur leur valeur dans les formules de la feuille 'Choix' (ex := Si(Index_Bd_Générale>0;Index(.......);"Ooops blème."). Je vous laisse le faire au besoin.

Les lignes de codes de la feuille choix ont été commentées en attendant la suite.

cordialement
Merci, je regarde ça en détail.
La première proposition d'isolée la formule tenant compte des critères (dans la formule matricielle) a permis de réduire le temps de calcul.
 

Discussions similaires

Statistiques des forums

Discussions
311 735
Messages
2 082 023
Membres
101 873
dernier inscrit
excellllll