Liste en cascades problème de doublons
Résolu/Fermé
Cecile
-
14 nov. 2012 à 19:50
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 17 nov. 2012 à 22:21
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 17 nov. 2012 à 22:21
A voir également:
- Liste en cascades problème de doublons
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Supprimer les doublons excel - Guide
- Doublons photos - Guide
- Liste de diffusion whatsapp - Guide
4 réponses
Raymond PENTIER
Messages postés
58781
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
28 décembre 2024
17 257
15 nov. 2012 à 01:56
15 nov. 2012 à 01:56
Envoie ton fichier.
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
...
Raymond PENTIER
Messages postés
58781
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
28 décembre 2024
17 257
17 nov. 2012 à 00:24
17 nov. 2012 à 00:24
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.
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
17 nov. 2012 à 01:19
17 nov. 2012 à 01:19
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
Modifié par eriiic le 17/11/2012 à 22:22
Modifié par eriiic le 17/11/2012 à 22:22
Re,
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?
uniquement en vba...
eric
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?
uniquement en vba...
eric