Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Recherche de texte dans un classeur qui retourne un "X" dans un autre

Camaalot

XLDnaute Nouveau
Bonjour,

J'ai un petit souci avec une formule. J'implore alors votre aide.

J'explique :
Dans le fichier Factures à payer1 :
J'utilise ici, dans V6, =SI(NB.SI(Tableau1;"Loyer");"X";""). Ça fonctionne à merveille.
L'idée est tout à fait là. Exemple : Quand est présent dans E6:E17 le texte "Loyer", un X apparait dans V6.

Par contre, je veux que la plage de la formule provienne d'un autre classeur.
S.V.P. voir le fichier suivant Factures à payer2.xlsx pour bien comprendre.

Dans le fichier Factures à payer2 :
Dans ce classeur, pour récupérer les valeurs "Loyer", etc, du tableau du classeur Factures à payer1.xlsx, J'ai utilisé dans V6 la fonction INDIRECT avec =SI(NB.SI(Tableau1;"Loyer");"X";"").

Voyons, Je choisis le mois dans F2. Cette liste est liée à Q10 avec =RECHERCHEV(F2;T13:U25;2;FAUX) dans Q10. Ce qui devrait m'afficher dans un "X" dans I6:I14.

La formule est : =SI(NB.SI(INDIRECT("'[Factures à payer.xlsx]"&$Q$10&"'!$E$6:$E$17;"Loyer");"X";"")).

C'est ici que tout flanche. J'ai cherché des solutions et rien.

Merci de votre aide,

Camaalot
 

Pièces jointes

  • Factures à payer1 - test.xlsx
    17.5 KB · Affichages: 25
  • Factures à payer2 - test.xlsx
    17.1 KB · Affichages: 33

Camaalot

XLDnaute Nouveau
Merci Chris,

J'ai bien compris que c'était impossible.

Le problème reste entier. Y a-t'il une solution à ce problème.
Formule ou VBA. Mais là, j'avoue que j'y connais rien.

Je continue à chercher, mais s.v.p. je crie à l'aide.

Merci encore,

Camaalot
 

job75

XLDnaute Barbatruc
Bonjour Camaalot, chris,

Avec SOMMEPROD on peut utiliser les formules de liaison classiques.

Ouvrez les 2 fichiers
et en I6 de Factures à payer2 - test.xlsx entrez la formule :
Code:
=REPT("X";SOMMEPROD(N('Factures à payer1 - test.xlsx'!Tableau1="Loyer")))
ou s'il peut y avoir plusieurs "Loyer" dans Tableau1 :
Code:
=REPT("X";SIGNE(SOMMEPROD(N('Factures à payer1 - test.xlsx'!Tableau1="Loyer"))))
Vous pouvez refermer le fichier 1 : la formule s'adapte avec le chemin d'accès.

A+
 

Camaalot

XLDnaute Nouveau
Bonjour Job75, Chris,

C'est vraiment génial parce cette formule résout l'erreur que j'obtenais en utilisant INDIRECT avec NB.SI.


Maintenant, j'expose la suite de mon problème :
Voyons, dans Factures à payer2 - test_V2.xlsx, je choisis le mois dans F2. Cette liste est liée à Q10 avec =RECHERCHEV(F2;T13:U25;2;FAUX) dans Q10.

Exemple, je sélectionne "Janvier" dans F2, Excel affichera dans I6:I14 les "X" en relation avec les valeurs l'onglet Janvier du fichier Factures à payer1 - test_V2.xlsx. Et, le processus est le même avec Février...

Peut-on imbriquer INDIRECT avec =REPT("X";SOMMEPROD(N('E:\Budget\Tests\Factures à payer1 - test.xlsx'!Tableau1="Loyer"))) ?

Comment peut-on faire ? Je suis à bout de ressources.

Merci beaucoup pour cet aide,

Camaalot
 

Pièces jointes

  • Factures à payer1 - test_V2.xlsx
    16.8 KB · Affichages: 27
  • Factures à payer2 - test_V2.xlsx
    18 KB · Affichages: 26

job75

XLDnaute Barbatruc
Bonjour Camaalot, chris, le forum,

1) Dans le fichier Factures à payer1 - test_V2.xlsx créez toutes les feuilles des mois.

2) Ouvrez les 2 fichiers.

3) Dans le fichier Factures à payer2 - test_V2.xlsx définissez les 12 noms :

tablo1 ='[Factures à payer1 - test_V2.xlsx]Janvier'!$E$6:$E$17
tablo2 ='[Factures à payer1 - test_V2.xlsx]Février'!$E$6:$E$17
---
tablo12 ='[Factures à payer1 - test_V2.xlsx]Décembre'!$E$6:$E$17

En I6 vous pouvez maintenant entrer la formule :
Code:
=REPT("X";SOMMEPROD(N(CHOISIR(MOIS(1&$Q$10);tablo1;tablo2;tablo3;tablo4;tablo5;tablo6;tablo7;tablo8;tablo9;tablo10;tablo11;tablo12)="Loyer")))
et refermer le 1er fichier.

Bonne journée.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…