Microsoft 365 Lister les onglets selon condition

MACx

XLDnaute Occasionnel
Bonjour les XLDnautes !

Voici une demande qui j'espère dont j'espère vous saurez m'apporter une aide précieuse.

Je possède un fichier Excel avec X onglets.
Chaque onglet est un contrat, et en cellule I2 il y a une date de fin de contrat (sauf quand ce dernier est toujours en cours)

Je voudrais tout simplement lister en deux colonnes (sur un autre onglet nommé "Listes")
- les contrats en cours (I2 = vide)
- les contrats clôturés (I2 = nonVide)

Ces deux listes devront se mettre à jour à chaque ouverture du fichier (ou par le biais d'un bouton "Actualiser"

Merci d'avance pour votre aide !

MACx
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Un fichier REPRESENTATIF de la question, c'est à dire avec des dates dans certaines cellules i2.
N'en ayant pas je propose tout de même cette solution par power query.

Dans feuille listes, clic-droit dans le tableau des contrats (vert) puis dans l'onglet de ruban requête qui s'ouvre, à gauche cliquer sur modifier. Dans l'étape source de la requête, corriger le chemin vers le fichier.

Dans la feuille listes toujours en d2 la liste suivant la valeur choisie dans l'onglet 'contrats' (au pluriel) :
=FILTRE(Contrats[Contrats];Contrats[Statut]='Contrats'!$E$10;"non trouvé")

Voir dans la feuille contrats, donnée validation sur G10

Lorsque vous aurez modifier le chemin vers le fichier dans la requête et rafraîchit celle-ci, vous pourrez, dans les propriétés de la requête demander à ce qu'elle soit lancée à l'ouverture du fichier :
1655911442708.png


Si vous le faites avant, vous aurez une erreur bien-sûr.

cordialement
 

Pièces jointes

  • ListeContrats.xlsx
    35.9 KB · Affichages: 4

MACx

XLDnaute Occasionnel
Wow ! Merci beaucoup !
Je ne connaissais pas cette méthode.
Cela dit, peux-tu me dire stp, comment la liste des contrats (colonne A) s'est générée ?
En effet, la liste étant initialement très longue (avec ajout de nouveaux onglets au fil du temps), j'ai besoin que cette liste se génère automatiquement, d'où une mise à jour à chaque ouverture du fichier.
Et par conséquent, la colonne B aussi mise à jour automatiquement selon si I2 (de chaque onglet) est vide ou pas.
Merci ! 👍
 

Hasco

XLDnaute Barbatruc
Repose en paix
RE,

Cela dit, peux-tu me dire stp, comment la liste des contrats (colonne A) s'est générée

Euh.... Ben il me semble que je l'ai dit. Non ! ? C'est le résultat d'une requête power query.
Il faut lire les réponses.

hasco à dit:
Dans feuille listes, clic-droit dans le tableau des contrats (vert) puis dans l'onglet de ruban requête qui s'ouvre, à gauche cliquer sur modifier. Dans l'étape source de la requête, corriger le chemin vers le fichier.

Au fait ! la requête sélectionne les feuilles dont le nom commence par "contrat" et ne se finit pas par "s".

cordialement
 

MACx

XLDnaute Occasionnel
RE,



Euh.... Ben il me semble que je l'ai dit. Non ! ? C'est le résultat d'une requête power query.
Il faut lire les réponses.



Au fait ! la requête sélectionne les feuilles dont le nom commence par "contrat" et ne se finit pas par "s".

cordialement
Je vais essayer de comprendre cette histoire de Power Query 😅 Merci beaucoup.
Par contre, chaque feuille a un nom différent.
 

MACx

XLDnaute Occasionnel
Hasco,
Ta requête Power Query, fonctionne parfaitement, mais malheureusement je n'arrive pas à la reproduire (pour l'utiliser dans mon fichier d'origine)
J'obtiens ces différents messages d'erreur lorsqu' j'essaie d'analyser ce que tu as fait.
1655971461176.png


1655971622426.png


Merci à nouveau pour ton aide.

PS: J'ai rajouté un nouvel onglet (Contrat10) et le tableau ne s'est pas actualisé à l'ouverture du fichier. :(
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Décidément vous ne lisez pas les réponses qui vous sont données, ou peut-être que je n'écris pas en français sans m'en rendre compte :
Dans l'étape source de la requête, corriger le chemin vers le fichier.
puis :
Lorsque vous aurez modifier le chemin vers le fichier dans la requête...
...Si vous le faites avant, vous aurez une erreur bien-sûr.

Vous savez ce qu'est un 'Chemin vers le fichier' ?

Bonne correction de chemin
 
Dernière édition:

MACx

XLDnaute Occasionnel
Bonjour,

Décidément vous ne lisez pas les réponses qui vous sont données, ou peut-être que je n'écris pas en français sans m'en rendre compte :

puis :

Vous savez ce qu'est un 'Chemin vers le fichier' ?

Bonne correction de chemin
Je vous rassure, votre français est correct. En revanche, vous n'êtes vraiment pas très pédagogue 😁
Des étapes qui pour vous sont très "logiques" ne le sont pas forcément pour d'autres, qui n'ont pas votre expertise.
Pour commencer, je découvre (et merci car grâce à vous!) le Power Query. Aussi, quand vous parlez de "l'étape source de la requête", je ne sais pas où on trouve cela ?
Ce qui m'amène à la question "Comment avez-vous créer une requête"?
De même pour "modifier le chemin vers le fichier"... à partir d'où ?

Désolé, si mon niveau est trop débutant pour vous. Mais quoi qu'il en soit, merci pour le temps dédié à essayer de m'aider.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Ben voilà, faut demander des précisions quand vous ne comprenez pas. Je ne peux pas savoir, ce que vous savez et ce que vous ne savez pas.

Alors, pour voir les requêtes d'un fichier : onglet de ruban 'Données' bouton 'Requêtes & connexion'.
Un volet des requêtes et connexion s'affiche à droite.
Dans ce volet vous avez les noms de requêtes du classeur. Ici, un seul nom: 'Contrats'.
Click-droit sur 'Contrats' -> modifier
L'éditeur de requête s'ouvre
A gauche vous avez de nouveau une liste des requêtes du classeur.
A droite un panneau vous donne les noms des différentes étape de la requête.
L'étape source c'est toujours (ou presque) la première étape.
cliquez sur cette étape et regardez au dessus-du panneau du milieu, il y a une barre de formule comme sur une feuille excel (sinon : menu 'Affichage'->'Barre de formule') vous y verrez le chemin vers le fichier, changez le ici
puis validez. Le panneau sous cette barre de formule vous montrera le résultat de l'étape.

Cliquez ensuite sur les différentes étapes pour voir et étudier les transformations, pas à pas vers votre liste de contrats.

Sur votre fichier réel, je pense que l'étape nommée "Sélection Date" sera en echec.
Elle est censée récupérer le contenu de la cellule i2. Mais comme les feuilles de vos exemples ne reflètent pas la réalité, je n'ai pas pu faire plus juste.

Ne soyez pas désolé de votre niveau. Nous sommes tous partis de 0.
L'important est la précision des questions et l'exactitude des exemples.
Plus vos questions seront précises et vos exemples conformes à la réalité, plus les réponses seront précises et justes.

Au passage, dans le fichier joint j'ai ajouté une MFC sur G10 qui barre le nom du contrat pour indiquer qu'il n'est pas dans la liste concernée.

De plus si aucun statut n'est choisit, tous les contrats seront dans la liste.

J'ai corrigé une faute d'orthographe d'un nom j'avais mis un t à choisits !!!

Cordialement
 

Pièces jointes

  • ListeContrats.xlsx
    36.8 KB · Affichages: 3
Dernière édition:

MACx

XLDnaute Occasionnel
Re,

Ben voilà, faut demander des précisions quand vous ne comprenez pas. Je ne peux pas savoir, ce que vous savez et ce que vous ne savez pas.

Alors, pour voir les requêtes d'un fichier : onglet de ruban 'Données' bouton 'Requêtes & connexion'.
Un volet des requêtes et connexion s'affiche à droite.
Dans ce volet vous avez les noms de requêtes du classeur. Ici, un seul nom: 'Contrats'.
Click-droit sur 'Contrats' -> modifier
L'éditeur de requête s'ouvre
A gauche vous avez de nouveau une liste des requêtes du classeur.
A droite un panneau vous donne les noms des différentes étape de la requête.
L'étape source c'est toujours (ou presque) la première étape.
cliquez sur cette étape et regardez au dessus-du panneau du milieu, il y a une barre de formule comme sur une feuille excel (sinon : menu 'Affichage'->'Barre de formule') vous y verrez le chemin vers le fichier, changez le ici
puis validez. Le panneau sous cette barre de formule vous montrera le résultat de l'étape.

Cliquez ensuite sur les différentes étapes pour voir et étudier les transformations, pas à pas vers votre liste de contrats.

Sur votre fichier réel, je pense que l'étape nommée "Sélection Date" sera en echec.
Elle est censée récupérer le contenu de la cellule i2. Mais comme les feuilles de vos exemples ne reflètent pas la réalité, je n'ai pas pu faire plus juste.

Ne soyez pas désolé de votre niveau. Nous sommes tous partis de 0.
L'important est la précision des questions et l'exactitude des exemples.
Plus vos questions seront précises et vos exemples conformes à la réalité, plus les réponses seront précises et justes.

Au passage, dans le fichier joint j'ai ajouté une MFC sur G10 qui barre le nom du contrat pour indiquer qu'il n'est pas dans la liste concernée.

De plus si aucun statut n'est choisit, tous les contrats seront dans la liste.

J'ai corrigé une faute d'orthographe d'un nom j'avais mis un t à choisits !!!

Cordialement
Bonjour Hasco,
Merci pour cette pédagogie !
En effet, l'étape "Sélection Date" est en échec. Et comme vous le précisez, c'est bien la cellule I2 qui va déterminer si le contrat est en cours ou clôturé.
Petite, précision: Il y'a plusieurs dates dans chaque feuille mais c'est la cellule I2 qui doit être pris en compte pour la génération de la liste selon Statut.
Merci.
 

Pièces jointes

  • ListeContrats2022.06.23.xlsx
    32.5 KB · Affichages: 2

Hasco

XLDnaute Barbatruc
Repose en paix
bonjour,

Je vois que vous n'avez pas même essayé d'adapter le chemin vers le fichier, ni même le nom du fichier lui-même.
De plus je suis certain que vos feuilles de contrat de contiennent pas uniquement deux dates.
Pour taper juste, il faut vraiment que vos exemples ressemblent à la réalité (Même les noms de feuilles).
 
Dernière édition:

MACx

XLDnaute Occasionnel
Si si j'ai modifié le chemin, mais pas dans ce fichier "tampon" (le changement de chemin ne vous aidera pas)
Comme déjà précisé, il y a en effet plusieurs dates dans une même feuille, mais ici c'est la cellule I2 qui m'intéresse.
Pouvez-vous juste m'expliquer quelles sont les étapes à faire pour obtenir la valeur de la cellule I2 de chaque feuille ?
Je préfère essayer de comprendre les démarches qu'à obtenir un travail mâché et non (ou mal) expliqué 🤓
Merci beaucoup.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

le changement de chemin ne vous aidera pas
Je n'ai pas besoin que vous m'aidiez, c'est le contraire et pour cela j'ai besoin de voir ce que vous êtes ou non capable de faire. Quand j'ai ouvert votre fichier je n'ai rien vu de vos tentatives de changements, les éventuelles erreurs etc..

Donc pour l'étape source, je passe et continue le fil des étapes de la requête.
Etapes 2 : Sélection des feuilles de contrat par leur noms.

Dans le premier fichier vous aviez une racine commune qui permettait de faire une sélection par le début du nom. Text.StartsWith(....)

Dans votre dernier fichier le seul point commun à vos noms de feuilles de contrat, c'est qu'ils sont en majuscule. Si tel est le cas dans la réalité alors on peut s'appuyer là-dessus. Parmi toutes les options de filtrage

A l'étape Source vous obtenez un tableau avec notamment une colonne nommée 'Kind' qui donne le type d'élément de chaque ligne (DéfinedName pour les noms définis, Sheet pour les feuilles de calcul entières, et Table pour les tableaux)
Comme nous voulons les feuilles entières filtrer la colonne "Kind" (flèche à droite du nom de la colonne) sur Sheet, Validez et vous aurez dans la barre de formule :
= Table.SelectRows(Source, each ([Kind] = "Sheet"))
Comme l'interface ne permet pas de filtrer les lignes dont la colonne "Items" est en majuscule, vous allez rajouter manuellement en fin de cette première formule, après une espace :
and (Text.Upper([Item]) = [Item])
Pour avoir en lieu et place de l'ancienne formule :
= Table.SelectRows(#"Lignes filtrées", each ([Kind] = "Sheet") and (Text.Upper([Item]) = [Item]))
Text.Upper([Item]) = [Item] transforme le texte en majuscule pour le comparer à la chaîne d'origine contenue dans la colonne [Item]. Si la chaîne transformée et la chaine d'origine sont les mêmes alors le test est ok.

Cordialement
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 608
Messages
2 111 114
Membres
111 044
dernier inscrit
MauriceLebon