XL 2016 mise à jour listes

  • Initiateur de la discussion Initiateur de la discussion jahsoldier
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jahsoldier

XLDnaute Nouveau
Bonjour,

je vous expose brièvement mon problème. En gros j'ai une série de classeurs qui correspondent chacun à un utilisateur. Chaque classeur actuellement contient une feuille qui rassemble les listes déroulantes du classeur. Ce qu'il y a, c'est que j'ai pour le moment une dizaine d'utilisateurs différents et qu'à chaque fois qu'une modifcation doit être faite dans une liste je fais le changement manuellement pour chaque classeur.

Ma question est, serait-il possible de créer un classeur qui reprend les listes et que lorsque je fais un changement dedans cela se répercute sur tous les classeurs des utilisateurs ?

Je vous joins un classeur type d'un utilisateur, ainsi qu'un classeur qui reprend les listes (mais dont je ne parviens pas à faire la liaison..)

Par ailleurs, à l'heure actuelle, le classeur reprenant les listes n'est pas dans le même dossier que les classeurs des utilisateurs (je peux l'y mettre au besoin mais je préfère éviter si c'est possible).

Merci déjà pour le temps passé à lire mon problème
 

Pièces jointes

Solution
RE

Donc comme dit j'ai nommé les tableaux et colonnes des listes du classeur Listes (pour les colonnes, si la listes n'est par utilisée dans son classeur, pas nécessaire).

Pour AL :
Si on veut avoir un chemin paramétrable : prévoir une cellule et la nommer z_Dossier (ne pas oublier le \ final dans le chemin)

Pour faire le lien
Données, A partir d'un fichier, Excel, parcourir les dossiers et sélectionner le fichier Listes, cocher la case Sélectionner plusieurs éléments, puis cocher chacun des tableaux puis, en bas, bouton Modifier

Si on ne souhaite pas de chemin paramétrable, sortir par Fermer et charger dans, Connexion uniquement puis afficher le volet des...
Bonjour

Pour commencer je te conseille de toujours
  • donner des noms à tes tableaux autres que les noms automatiques du type Tableau1
  • pour les sources de listes déroulantes, nommer également la colonne unique, hors titre de ces tableaux et utiliser ce nom comme Liste de validation
Puisque vous avez 2016, le plus simple est de faire le lien vers la référence des listes par PowerQuery

J'ai mis à jour les deux fichiers
Une cellule nommée dossier contient le chemin d'accès : modifie le

J'ai ajouté une code d'actualisation à l'ouverture du classeur dans le module ThisWorkbook

Ton code VBA de la feuille Plaintes ne devrait pas figurer dans les autres onglets
 

Pièces jointes

Bonjour @jahsoldier , @chris , le Forum

Coucou Chris, j'ai l'impression qu'il manque le second classeur (XLSM) dans ton Post, car je ne vois que le Classeur Listes.xlsx (qui lui ne contient pas de de code dans ThisWorkBook)

Bonne journée
@+Thierry*

EDIT ah il est là maintenant le xlsm !
 
Dernière édition:
Bonjour,

Merci beaucoup pour vos réponses.

Je prends bonne note pour la nomination des tables et listes

J'ai cependant un petit souci, lorsque je change le chemin d'accès, que je sauve et ouvre à nouveau le classeur AL, Excel m'affiche un message d'erreur et ceci pour toutes les tables.

erreur.PNG


Pourriez-vous également m'expliquer la façon de procéder pour pouvoir l'appliquer aux autres classeurs qui contiennent également les listes ? ou un tutoriel qui peut m'orienter sur la voie pour faire les powerquery (vu que c'est de cela qu'il s'agit visiblement)

Par ailleurs, vous me signalez qu'il ne faut pas copier le code VBA dans chaque feuille, cela veut dire que s'il se trouve sur la première feuille il s'appliquera à toutes les feuilles du classeur (sachant que le code permet de couper/coller) une ligne dans une autre feuille en fonction de divers critères ?
 
Bonjour

A vérifier dans l'éditeur PowerQuery :
Fichier, Options et paramètres, Options de requête, Classeur Actif, Confidentialité : doit être ignorer les niveaux de confidentialité
Cela devrait résoudre

Pour les explications, là je pars mais repasserai en fin d'aprem

Pour le VBA, si j'ai bien compris, il sert à ventiler les lignes de la 1ère feuille sur les autres (j'ai regardé en diagonale donc peut-être mal interprété)
 
bonjour,

cela fonctionne maintenant, merci 🙂

J'attends les explications avec impatience mais dores et déjà merci, au moins je sais qu'une solution est possible 🙂

Et pour le VBA oui, il sert à pouvoir ventiler les lignes sur les autres feuilles en fonction des différents cas, mais il peut ventiler de n'importe quelle feuille vers n'importe quelle autre feuille. Une fois que mon soucis de listes sera résolu, j'aurai un autre cas à soumettre pour faire du copier coller d'un classeur vers un autre mais ça je ferai après 🙂
 
Dernière édition:
RE

Donc comme dit j'ai nommé les tableaux et colonnes des listes du classeur Listes (pour les colonnes, si la listes n'est par utilisée dans son classeur, pas nécessaire).

Pour AL :
Si on veut avoir un chemin paramétrable : prévoir une cellule et la nommer z_Dossier (ne pas oublier le \ final dans le chemin)

Pour faire le lien
Données, A partir d'un fichier, Excel, parcourir les dossiers et sélectionner le fichier Listes, cocher la case Sélectionner plusieurs éléments, puis cocher chacun des tableaux puis, en bas, bouton Modifier

Si on ne souhaite pas de chemin paramétrable, sortir par Fermer et charger dans, Connexion uniquement puis afficher le volet des Connexions, clic droit sur un tableau, Charger, Table et choisir l'emplacement (ce qui permet de les mettre dans un même onglet, sinon on aurait eu autant d'onglets que de tables)

Si chemin paramétrable : avant de sortir
Accueil, Nouvelle source, Autres sources, Requête vide
renommer la requête Dossier puis dans la barre de formule taper
= Excel.CurrentWorkbook(){[Name="z_Dossier"]}[Content][Column1]{0}
Modifier ensuite la ligne Source (dans les étapes à droite) de chaque requête en remplaçant la partie correspondant au chemin pour avoir :
= Excel.Workbook(File.Contents(Dossier&"Listes.xlsx"), null, true)
(on peut le faire sur la 1ère requête, copier la ligne obtenu et s'en servir pour modifier les autres)
puis sortir comme indiqué ci-dessus

Dans Excel nommer les 1ère colonnes de chaque tableau et utiliser les noms dans les validations
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
455
Retour