XL 2019 si "autre classeur" existe alors récupérer donnée dans "autre classeur" sinon rien

DédéW83

XLDnaute Junior
Bonjour à tous,
j'ai besoin de récupérer valeur de la cellule M10 d'un autre classeur s'il existe déjà, mais j'ai un soucis avec ESTERREUR.
=SI(ESTERREUR("'[Classeur"&A5&".xlsm'!$M$10");"ERREUR";"existe") me donne toujours "existe", même si le classeur n'existe pas. En A5 il y a le n° du classeur, par exemple Classeur5.
Ci joints 4 classeurs, le 100 récupère M10 des autres.
Voir formules dans le Classeur100.
Merci de votre aide,
Dédé.
 

Pièces jointes

  • Classeur1.xlsx
    12.9 KB · Affichages: 3
  • Classeur2.xlsx
    12.9 KB · Affichages: 3
  • Classeur3.xlsx
    12.9 KB · Affichages: 3
  • Classeur100.xlsx
    27.9 KB · Affichages: 2
Dernière édition:
Solution
Bonjour,


Dans le fichier zip ci-joint vous trouverez.
Eh oui n'ai changé les noms car les 'ClasseurN.xlsx' ça ne me parle pas.

le fichier DédéW83.xlsx avec une feuille 'Feuil1' qui contient une requête Power-Query (inclus dans votre version excel)
Cette dernière sélectionne et traite les fichiers dont dont le nom commence par 'DédéW83' et ne contient pas '(100)'

A vous d'aller ensuite chercher les données à cet endroit par formule, voir l'exemple dans votre feuille 'Totaux généraux'.

Ce n'est qu'un exemple qui peut être amélioré, modifié ou changé éventuellement

Cordialement

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Dans votre post#9 vous ne faisiez que cité ma réponse, sans question. Je me suis dis "il a du faire une fausse manip et la question est passée à l'as ?"

Alors ajoutons ces colonnes.
Dans l'éditeur power query, sélectionnez l'étape "Récupération M10"
Dans la barre de formule (éventuellement Affichage/Barre de formule), récupérez (copiez) la partie :
Excel.Workbook([Content]){[Item="TOTAUX",Kind="Sheet"]}[Data]{9}[Column13]
Dans l'onglet 'Ajouter une colonne' cliquez sur le bouton "Colonne personnalisée"
Il va vous demander si vous voulez insérer une étape, confirmer que c'est ce que vous voulez
Dans la fenêtre qui s'ouvre, renseignez le nom de la nouvelle colonne puis dans la zone de texte en dessous taper = et coller ce que vous avez récupéré plus haut.

Dernière opération changer les N° de ligne et nom de colonne à récupérer en sachant que Power Query compte les lignes à partir de 0 et les colonnes sont automatiquement nommée à partir de 1 (Eh oui c'est comme ça)
Pour la cellule C16 votre formule de colonne donnera :
=Excel.Workbook([Content]){[Item="TOTAUX",Kind="Sheet"]}[Data]{15}[Column3]
Faire la même chose pour les autres colonnes.

Avec des exemples plus proches de la réalité, j'aurai peut-être trouvé un autre moyen.

bonne continuation
 

DédéW83

XLDnaute Junior
Re,

Dans votre post#9 vous ne faisiez que cité ma réponse, sans question. Je me suis dis "il a du faire une fausse manip et la question est passée à l'as ?"

Alors ajoutons ces colonnes.
Dans l'éditeur power query, sélectionnez l'étape "Récupération M10"
Dans la barre de formule (éventuellement Affichage/Barre de formule), récupérez (copiez) la partie :

Dans l'onglet 'Ajouter une colonne' cliquez sur le bouton "Colonne personnalisée"
Il va vous demander si vous voulez insérer une étape, confirmer que c'est ce que vous voulez
Dans la fenêtre qui s'ouvre, renseignez le nom de la nouvelle colonne puis dans la zone de texte en dessous taper = et coller ce que vous avez récupéré plus haut.

Dernière opération changer les N° de ligne et nom de colonne à récupérer en sachant que Power Query compte les lignes à partir de 0 et les colonnes sont automatiquement nommée à partir de 1 (Eh oui c'est comme ça)
Pour la cellule C16 votre formule de colonne donnera :

Faire la même chose pour les autres colonnes.

Avec des exemples plus proches de la réalité, j'aurai peut-être trouvé un autre moyen.

bonne continuation
Dans la barre de formule j'ai ça:
VB:
=[SIZE=4] Table.AddColumn(#"Lignes filtrées", "M10", each Excel.Workbook([Content]){[Item="TOTAUX",Kind="Sheet"]}[Data]{9}[Column13])
[/SIZE]
bizarre dans votre message votre barre de formule vient de disparaitre.... Je n'ai pas eu le temps de la copier.
 
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Euh... faut lire attentivement les réponses, sinon on ne s'en sort pas.
Copiez la partie :
Excel.Workbook([Content]){[Item="TOTAUX",Kind="Sheet"]}[Data]{9}[Column13]
de "Excel" à "[Column13]" (inclus)

Vous pouvez également si vous voulez sélectionner l'étape "Récupération M10" et double-cliquez sur la roue à droite de son nom, cela ouvrira l'interface d'édition de l'étape.
Copier simplement ce qu'il y a dans la fenêtre et coller dans la nouvelle étape
1658648680086.png

Un tuto pas trop mal de prise en main de power query :

cordialement
 

DédéW83

XLDnaute Junior
Re,

Dans votre post#9 vous ne faisiez que cité ma réponse, sans question. Je me suis dis "il a du faire une fausse manip et la question est passée à l'as ?"

Alors ajoutons ces colonnes.
Dans l'éditeur power query, sélectionnez l'étape "Récupération M10"
Dans la barre de formule (éventuellement Affichage/Barre de formule), récupérez (copiez) la partie :

Dans l'onglet 'Ajouter une colonne' cliquez sur le bouton "Colonne personnalisée"
Il va vous demander si vous voulez insérer une étape, confirmer que c'est ce que vous voulez
Dans la fenêtre qui s'ouvre, renseignez le nom de la nouvelle colonne puis dans la zone de texte en dessous taper = et coller ce que vous avez récupéré plus haut.

Dernière opération changer les N° de ligne et nom de colonne à récupérer en sachant que Power Query compte les lignes à partir de 0 et les colonnes sont automatiquement nommée à partir de 1 (Eh oui c'est comme ça)
Pour la cellule C16 votre formule de colonne donnera :

Faire la même chose pour les autres colonnes.

Avec des exemples plus proches de la réalité, j'aurai peut-être trouvé un autre moyen.

bonne continuation
BONJOUR? JE VEUX BIEN LIRE UNE LIGNE 0 RECOPIER? MAIS PAS QUAND ELLE EST VIDE DANS VOTRE MESSAGE.
C'est ce que je vous disais dans mon dernier poste...
Bref j'ai trouvé cette ligne, en cliquant sur Récupération M10. J'ai fait toute les procédures indiquées, tout va bien dans la feuil1. J'ai renommé M10 mais il y a toujours "Récupération M10". Donc je suppose qu'il faut agir plus haut, mais ou? je ne trouve pas.
Par contre dans la feuille TOTAL Général, rien n'a bougé, toujours DédéW83(1) non trouvé (normal il est viré).
En tout cas merci pour vos explications qui sont très claires.
 

Hasco

XLDnaute Barbatruc
Repose en paix
BONJOUR? JE VEUX BIEN LIRE UNE LIGNE 0 RECOPIER? MAIS PAS QUAND ELLE EST VIDE DANS VOTRE MESSAGE.
Re,

Alors là, comprends pas (votre navigateur qui affiche mal de BBCODE ou règlage ?). Chez moi ça s'affiche normalement :
1658653908044.png


La partie de la formule à copier à l'étape "Récupération M10" c'est :
=Excel.Workbook([Content]){[Item="TOTAUX",Kind="Sheet"]}[Data]{9}[Column13]
Pour la coller à la création de la nouvelle étape "Récupération C16" (par exemple) qui apparaîtra immédiatement en dessous, et en changeant les indice de ligne et nom de colonne
1658655149316.png

Personnellement, je renomme les étapes pour leur donner un nom plus explicite, mais vous n'êtes pas obligé de le faire. Si vous le faites et que vous avez des erreurs dans les étapes suivantes, c'est que l'interface n'a pas réussi modifier dans les étapes suivantes. Il faut vérifier à la main.

1658655361079.png


Une fois que vous aurez récupérer vos quatre colonnes. Mettez manuellement le nom des nouvelles dans la barre de formule à l'étape "Sélection colonnes", voyez comment elle est notée et faites-y apparaître vos noms de colonnes.

Cordialement
 

DédéW83

XLDnaute Junior
BONJOUR? JE VEUX BIEN LIRE UNE LIGNE 0 RECOPIER? MAIS PAS QUAND ELLE EST VIDE DANS VOTRE MESSAGE.
C'est ce que je vous disais dans mon dernier poste...
Bref j'ai trouvé cette ligne, en cliquant sur Récupération M10. J'ai fait toute les procédures indiquées, tout va bien dans la feuil1. J'ai renommé M10 mais il y a toujours "Récupération M10". Donc je suppose qu'il faut agir plus haut, mais ou? je ne trouve pas.
Par contre dans la feuille TOTAL Général, rien n'a bougé, toujours DédéW83(1) non trouvé (normal il est viré).
En tout cas merci pour vos explications qui sont très claires.

Re,

Alors là, comprends pas (votre navigateur qui affiche mal de BBCODE ou règlage ?). Chez moi ça s'affiche normalement :
Regarde la pièce jointe 1145907

La partie de la formule à copier à l'étape "Récupération M10" c'est :
=Excel.Workbook([Content]){[Item="TOTAUX",Kind="Sheet"]}[Data]{9}[Column13]
Pour la coller à la création de la nouvelle étape "Récupération C16" (par exemple) qui apparaîtra immédiatement en dessous, et en changeant les indice de ligne et nom de colonne
Regarde la pièce jointe 1145909
Personnellement, je renomme les étapes pour leur donner un nom plus explicite, mais vous n'êtes pas obligé de le faire. Si vous le faites et que vous avez des erreurs dans les étapes suivantes, c'est que l'interface n'a pas réussi modifier dans les étapes suivantes. Il faut vérifier à la main.

Regarde la pièce jointe 1145910

Une fois que vous aurez récupérer vos quatre colonnes. Mettez manuellement le nom des nouvelles dans la barre de formule à l'étape "Sélection colonnes", voyez comment elle est notée et faites-y apparaître vos noms de colonnes.

Cordialement
oui j'ai fait tout ça. La colonne M10 est bien rebaptisé B dans le tableau mais dans les étapes appliquées elle apparait toujours sous Récupération M10 et pas de Récupération B.
En fait j'avais rajouté Récupération C et D et E manuellement et ça marche.
Vous en pensez quoi?
Et au fait à propos de la feuille TOTAL Général, pourquoi elle ne s'actualise pas?
Quelle est la magie pour faire apparaitre les données de la table dans TOTAL Général?
Et aussi comment élargir les colonnes du tableau? Car à chaque actualisation il revient à la taille d'origine.
 
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

De retour, mais j'ai pas le temps ce soir.
Je vois à peu près ce que vous dites, mais ce "à peu près" me gêne beaucoup car là dedans se cache on ne sait quoi...

Pour les largeurs de colonne, c'est une question excel.
Cliquez dans une cellule du tableau de résultat de la requête.
Dans l'onglet "Création de tableau", dans le groupe "données de tableau externe" cliquez sur le bouton "Propriétés".
Dans la fenêtre qui s'ouvre décocher l'option "Ajuster la largeur des colonnes", profitez-en pour regarder les autres options.
1658681912333.png

Pour la feuille totale, avez-vous insérer de nouvelles fonction Index/Equiv, ça c'est pas PQ qui le fera.

Pour le reste joignez un fichier excel avec des explications précises.

bonne soirée
 

DédéW83

XLDnaute Junior
Re,

De retour, mais j'ai pas le temps ce soir.
Je vois à peu près ce que vous dites, mais ce "à peu près" me gêne beaucoup car là dedans se cache on ne sait quoi...

Pour les largeurs de colonne, c'est une question excel.
Cliquez dans une cellule du tableau de résultat de la requête.
Dans l'onglet "Création de tableau", dans le groupe "données de tableau externe" cliquez sur le bouton "Propriétés".
Dans la fenêtre qui s'ouvre décocher l'option "Ajuster la largeur des colonnes", profitez-en pour regarder les autres options.
Regarde la pièce jointe 1145971
Pour la feuille totale, avez-vous insérer de nouvelles fonction Index/Equiv, ça c'est pas PQ qui le fera.

Pour le reste joignez un fichier excel avec des explications précises.

bonne so
Ok et merci encore, bonne soirée
Dédé.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Si vous pouviez ne pas cliquer systématiquement sur le bouton (bleu sur fond blanc) "Répondre" ce serait bien. Cela reprend à chaque fois la totalité du message et comme en général je sais ( encore) à peu près ce que je dis, c'est un peu fastidieux.
Sous le dernier message, vous avez la zone de saisie des réponses.
Tapez votre réponse dans cette zone de texte et pour l'envoyer cliquez sur le bouton blanc sur fond Bleu marqué lui aussi "Répondre".
 

DédéW83

XLDnaute Junior
Bonjour,

Si vous pouviez ne pas cliquer systématiquement sur le bouton (bleu sur fond blanc) "Répondre" ce serait bien. Cela reprend à chaque fois la totalité du message et comme en général je sais ( encore) à peu près ce que je dis, c'est un peu fastidieux.
Sous le dernier message, vous avez la zone de saisie des réponses.
Tapez votre réponse dans cette zone de texte et pour l'envoyer cliquez sur le bouton blanc sur fond Bleu marqué lui aussi "Répondre".
Bonjour,

Si vous pouviez ne pas cliquer systématiquement sur le bouton (bleu sur fond blanc) "Répondre" ce serait bien. Cela reprend à chaque fois la totalité du message et comme en général je sais ( encore) à peu près ce que je dis, c'est un peu fastidieux.
Sous le dernier message, vous avez la zone de saisie des réponses.
Tapez votre réponse dans cette zone de texte et pour l'envoyer cliquez sur le bouton blanc sur fond Bleu marqué lui aussi "Répondre".
C'est ce que je viens de faire... C bon?
 

Discussions similaires

Statistiques des forums

Discussions
312 151
Messages
2 085 783
Membres
102 973
dernier inscrit
docpod