Liste en cascades problème de doublons
Résolu
Cecile
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai suivi les instructions de la fiche pour créer une liste en cascade (avec la fonction indirect) pour renseigner une colonne Classe budgétaire et une colonne Poste budgétaire. La liste dépendante poste s'affiche correctement pour toutes les classes sauf celles qui ont un poste commun.
Ex:
Administration, fournitures
Opérations, fournitures
Support technologique, équipement
Opérations, équipement
Santé, équipement
Lorsque je sélectionne Support technologique dans la colonne classe, la liste déroulante correspondante ne s'affiche pas car elle contient équipement, un terme qui est également présent dans la classe Opérations
Y a-t-il une solution plus chic que de varier légèrement l'orthographe du terme répété dans plusieurs listes?
J'ai suivi les instructions de la fiche pour créer une liste en cascade (avec la fonction indirect) pour renseigner une colonne Classe budgétaire et une colonne Poste budgétaire. La liste dépendante poste s'affiche correctement pour toutes les classes sauf celles qui ont un poste commun.
Ex:
Administration, fournitures
Opérations, fournitures
Support technologique, équipement
Opérations, équipement
Santé, équipement
Lorsque je sélectionne Support technologique dans la colonne classe, la liste déroulante correspondante ne s'affiche pas car elle contient équipement, un terme qui est également présent dans la classe Opérations
Y a-t-il une solution plus chic que de varier légèrement l'orthographe du terme répété dans plusieurs listes?
A voir également:
- Liste en cascades problème de doublons
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Doublons photos - Guide
- Liste code ascii - Guide
- Liste de diffusion whatsapp - Guide
4 réponses
J'ai trouvé le problème. Les doublons n'y sont pour rien, il s'agit d'une coïncidence.
En fait les trois classes pour lesquelles les postes budgétaires correspondant n'apparaissaient pas étaient celles ayant un nom composé.
MÉTHODE PROBLÉMATIQUE
Dans FeuilleCachée!
Ligne 1: Étiquettes de colonnes (liste des classes budgétaires)
Ligne 2 et suivantes: valeurs ordonnées (listes des postes budgétaires)
Soient:
LISTE DES CLASSES
plage FeuilleCachée!$A$1:$D$1nommée CLASSES où les valeurs sont
A1 [Support technologique]
B1 [Financiers (frais)]
C1 [Frais professionnels]
D1 [Administration]
LISTES DES POSTES
plage FeuilleCachée!$A$2:$A$4 nommée SupportTechnologique
plage FeuilleCachée!$B$2:$B$5 nommée FraisFinanciers
plage FeuilleCachée!$C$2:$C$2 nommée FraisProfessionnels
plage FeuilleCachée!$D$2:$D$7 nommée Administration
Dans FeuilleDépenses!
Lignes 2 à 100 masquées (chaque cellule contient une valeur valide ou le 0, dans le but de permettre la fonction AUTOCOMPLÉTER)
Cellule H101: les données sont validées par liste (source =CLASSES)
Cellule H102 et les suivantes: copie par glissement de H101
Cellule I101: les données sont validées par liste (source=INDIRECT($H101))
Cellule I102 et les suivantes: copie par glissement de I101 (noter que la référence doit être relative)
SOLUTION
Le problème semble tenir au fait que les étiquettes de colonnes (classes) doivent être orthographiées exactement comme le nom de la plage définie dessous (postes). Or, comme on ne peut pas utiliser d'espaces dans le nom d'une plage et que je ne voulais pas de mots collés comme étiquettes, j'ai dû faire le compromis de nommer mes colonnes avec des noms composés à l'aide de la barre de dessous _, et pas de parenthèses, ce qui donne:
LISTE DES CLASSES
plage FeuilleCachée!$A$1:$D$1 nommée CLASSES où les valeurs sont
A1 [Support_technologique]
B1 [Frais_financiers]
C1 [Frais_professionnels]
D1 [Administration]
La liste déroulante des cellules en H101 et suivantes est donc {Support_technique, Frais_financiers...}
J'ai également corrigé les valeurs correspondantes aux lignes 2 à 100 de la FeuilleDépenses! pour qu'elles permettent d'autocompléter correctement.
En fait les trois classes pour lesquelles les postes budgétaires correspondant n'apparaissaient pas étaient celles ayant un nom composé.
MÉTHODE PROBLÉMATIQUE
Dans FeuilleCachée!
Ligne 1: Étiquettes de colonnes (liste des classes budgétaires)
Ligne 2 et suivantes: valeurs ordonnées (listes des postes budgétaires)
Soient:
LISTE DES CLASSES
plage FeuilleCachée!$A$1:$D$1nommée CLASSES où les valeurs sont
A1 [Support technologique]
B1 [Financiers (frais)]
C1 [Frais professionnels]
D1 [Administration]
LISTES DES POSTES
plage FeuilleCachée!$A$2:$A$4 nommée SupportTechnologique
plage FeuilleCachée!$B$2:$B$5 nommée FraisFinanciers
plage FeuilleCachée!$C$2:$C$2 nommée FraisProfessionnels
plage FeuilleCachée!$D$2:$D$7 nommée Administration
Dans FeuilleDépenses!
Lignes 2 à 100 masquées (chaque cellule contient une valeur valide ou le 0, dans le but de permettre la fonction AUTOCOMPLÉTER)
Cellule H101: les données sont validées par liste (source =CLASSES)
Cellule H102 et les suivantes: copie par glissement de H101
Cellule I101: les données sont validées par liste (source=INDIRECT($H101))
Cellule I102 et les suivantes: copie par glissement de I101 (noter que la référence doit être relative)
SOLUTION
Le problème semble tenir au fait que les étiquettes de colonnes (classes) doivent être orthographiées exactement comme le nom de la plage définie dessous (postes). Or, comme on ne peut pas utiliser d'espaces dans le nom d'une plage et que je ne voulais pas de mots collés comme étiquettes, j'ai dû faire le compromis de nommer mes colonnes avec des noms composés à l'aide de la barre de dessous _, et pas de parenthèses, ce qui donne:
LISTE DES CLASSES
plage FeuilleCachée!$A$1:$D$1 nommée CLASSES où les valeurs sont
A1 [Support_technologique]
B1 [Frais_financiers]
C1 [Frais_professionnels]
D1 [Administration]
La liste déroulante des cellules en H101 et suivantes est donc {Support_technique, Frais_financiers...}
J'ai également corrigé les valeurs correspondantes aux lignes 2 à 100 de la FeuilleDépenses! pour qu'elles permettent d'autocompléter correctement.
Je pourrais raffiner davantage en m'assurant que chaque nom de liste commence par une ou deux lettres distincte des autres, de façon à accélérer la saisie, en autant que les noms de plage, les étiquettes de colonnes et les valeurs pour autocompléter soient orthographiées identiquement.
Ex:
AD_Administration
ST_Support_Technologique
FF_Frais_Financiers
FP_Frais_Professionnels
...
Ex:
AD_Administration
ST_Support_Technologique
FF_Frais_Financiers
FP_Frais_Professionnels
...
Mais c'est très bien ! C'est d'ailleurs ce que recommande Microsoft dans l'Aide Excel :
Cordialement.
Caractères valides Le premier caractère d'un nom doit être une lettre, un trait de soulignement (_) ou une barre oblique inversée (\). Les caractères restants du nom peuvent être des caractères alphanumériques, des points et des traits de soulignement. Remarque Vous ne pouvez pas utiliser les lettres « C », « c », « R » ou « r » comme nom défini car ces lettres sont utilisées comme abréviations pour sélectionner une ligne ou une colonne pour la cellule sélectionnée lorsqu'elles sont entrées dans une zone de texte Nom ou Atteindre. Les références de cellules ne sont pas autorisées Les noms ne peuvent pas être une référence de cellule, telle que Z$100 ou R1C1. Les espaces ne sont pas valides Les espaces ne sont pas autorisés. Utilisez le trait de soulignement (_) et le point (.) comme séparateurs de mots ; par exemple, Taxe_Vente ou Premier.Trimestre. Longueur des noms Un nom peut contenir jusqu'à 255 caractères. Casse Les noms peuvent comprendre des lettres en majuscules et en minuscules. Excel ne fait pas la distinction entre les majuscules et les minuscules dans les noms. Par exemple, si vous créez le nom Ventes, puis un autre nom VENTES dans le même classeur, Excel vous invite à sélectionner un nom unique.
Cordialement.
Bonsoir à tous,
tu peux conserver tes espaces et tes ( ) dans la 1ère liste et remplacer ces caractères.
Bien sûr tes noms de listes doivent correspondre au nom fabriqué.
Formule de validation :
=INDIRECT(SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;" ";"_");"(";"");")";""))
Les ( ) sont supprimées et les espaces transformés en _
ex: "Financiers (frais)" sera transformé en : "Financiers_frais" qui sera le nom de la liste.
fichier exemple : https://www.cjoint.com/?BKrbrKDwkWG
eric
tu peux conserver tes espaces et tes ( ) dans la 1ère liste et remplacer ces caractères.
Bien sûr tes noms de listes doivent correspondre au nom fabriqué.
Formule de validation :
=INDIRECT(SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;" ";"_");"(";"");")";""))
Les ( ) sont supprimées et les espaces transformés en _
ex: "Financiers (frais)" sera transformé en : "Financiers_frais" qui sera le nom de la liste.
fichier exemple : https://www.cjoint.com/?BKrbrKDwkWG
eric
Wow c'est vraiment génial! Merci!
Question... tant qu'à mettre ça si joli...
J'ai mis comme premier item de liste pour la liste CLASSES "choisir...) et j'ai créé le poste choisir... en début de liste pour chaque classe et la plage "choisir..." pour la classe "choisir...", de façon à ce que l'usager y voit une invite à renseigner la cellule et recherche la flèche du menu déroulant.. (Note : j'ai dû supprimer la correction automatique sur les 3 points qui est par défaut dans le backstage parce que le nom de classe "choisir..." n'était pas reconnu comme identique au nom de plage "choisir..." !!!)
Les listes déroulantes fonctionnent, l'autocompléter aussi. La seule petite imperfection au système, c'est que si on change la sélection de la colonne H, la valeur n'est pas "resettée" à "choisir..." dans la colonne I (liste dépendante).
On peut donc se retrouver avec des valeurs impossibles par erreur (y a pas de poste "dons" pour la classe "administration, mais cela peut quand même apparaître si l'usager change la classe charité pour administration mais oublie de resélectionner un poste approprié dans la liste déroulante.
Y a t'il un moyen de forcer un reset au premier item de la liste dépendante correspondante lorsqu'un changement de sélection de classe survient?
Merci, Cécile
Question... tant qu'à mettre ça si joli...
J'ai mis comme premier item de liste pour la liste CLASSES "choisir...) et j'ai créé le poste choisir... en début de liste pour chaque classe et la plage "choisir..." pour la classe "choisir...", de façon à ce que l'usager y voit une invite à renseigner la cellule et recherche la flèche du menu déroulant.. (Note : j'ai dû supprimer la correction automatique sur les 3 points qui est par défaut dans le backstage parce que le nom de classe "choisir..." n'était pas reconnu comme identique au nom de plage "choisir..." !!!)
Les listes déroulantes fonctionnent, l'autocompléter aussi. La seule petite imperfection au système, c'est que si on change la sélection de la colonne H, la valeur n'est pas "resettée" à "choisir..." dans la colonne I (liste dépendante).
On peut donc se retrouver avec des valeurs impossibles par erreur (y a pas de poste "dons" pour la classe "administration, mais cela peut quand même apparaître si l'usager change la classe charité pour administration mais oublie de resélectionner un poste approprié dans la liste déroulante.
Y a t'il un moyen de forcer un reset au premier item de la liste dépendante correspondante lorsqu'un changement de sélection de classe survient?
Merci, Cécile