liason entre classeur et erreur valeur

jopont

XLDnaute Impliqué
Bonsoir,

un classeur A comporte des laisons vers un autre classeur B.
SI B est fermé, les cellules liées à B dans le classeur affiche une erreur #valeur.

Si j'ouvre le classeur B, plus de problème.

Je précise que dans les liaisons du classeur A, j'ai une formule avec DECALER.

Comment solutionner ce problème ?

merci
 

job75

XLDnaute Barbatruc
Re : liason entre classeur et erreur valeur

Bonsoir jopont, le forum,

Oui, DECALER ne fonctionne pas quand la cellule à décaler est dans un classeur fermé.

Ce n'est par contre pas un problème pour la fonction INDEX.

Par exemple au lieu de :

=DECALER([B.xls]Feuil1!$A$1;;1)

utiliser :

=INDEX([B.xls]Feuil1!$1:$1;2)

A+
 

jopont

XLDnaute Impliqué
Re : liason entre classeur et erreur valeur

Ok mais comment je fais pour décaler de deux colonne à chaque fois.

Dans mon fichier fermé, les cellules à lire sont en colonne H, J, L, N, P ....
Je ne veux pas récupérer les colonnes I, K, M, O, ...

Comment faire avec index ?

merci
 

CISCO

XLDnaute Barbatruc
Re : liason entre classeur et erreur valeur

Bonjour

Ca doit être faisable avec la fonction MOD, mais, ne sachant ce que tu veux exactement...

Envoies nous deux petits fichiers comportant ce qu'il faut faire, avec les colonnes utilises...

@ plus
 

CISCO

XLDnaute Barbatruc
Re : liason entre classeur et erreur valeur

Bonjour

Pascal21 a tout a fait raison, le *2 permet de lire une colonne sur deux.

Pour autant, tout dépend de ce que tu veux faire (c'est pour cela que je te demandais deux petits fichiers :)) :

COLONNE() donne le numéro de la colonne où est écri la formule, par exemple 3
COLONNE()*2 donne le nombre pair correspondant, par exemple 6

COLONNE()*2-1 donne le nombre impair correspondant, par exemple 5.

Ainsi, avec INDEX(H$97:E$A97;;COLONNE()*2-1), on obtient INDEX(H$97:EA$97;;5), soit le contenu de P97 (H, I, J, K, L, M, N, O, P), puisque la syntaxe de la fonction INDEX est INDEX(plage de lecture;n° de ligne;n° de colonne).

En collant cette formule vers la droite, on obtient INDEX(H$97:EA$97;;7), soit le contenu de R97.

Dans ton cas, il faut écrire l'adresse complète de la plage, à la place de H$97:EA$97.

Et bien sûr, ce n'est intéressant que si tu veux les divers résultats (H97, J97...) sur une ligne les uns à coté des autres.

Ne sachant exactement ce dont tu as besoin, ni l'aspect de tes fichiers, je ne peux t'en dire plus.


@ plus

PS : Attention, COLONNE()*2-1 et COLONNE()-1*2 ne donne pas la même chose, mais là, c'est une histoire de mathématiques, pas de syntaxe à utiliser sur excel.
 
Dernière édition:

jopont

XLDnaute Impliqué
Re : liason entre classeur et erreur valeur

disons que dans le fichier qui récupère les données du fichier fermé, je veux à partir de B90 récupérer H97, J97, L97, N97, P97 du fichier fermé.

Ainsi B90 aurait la valeur de H97, C90 la valeur de J97 ....

merci
 

CISCO

XLDnaute Barbatruc
Re : liason entre classeur et erreur valeur

Bonsoir

dans ce cas, tu écris en B90
Code:
INDEX(adressecomplète du fichierfermé!H97:EA97;;(COLONNE()-1)*2-1)
car, en étant en B90, COLONNE()=2, donc (COLONNE()-1)*2-1 =(2-1)*2-1=1*2-1=2-1=1
puis en C90, (COLONNE()-1)*2-1 =(3-1)*2-1=2*2-1=4-1=3

Et au lieu d'écrire adressecomplète du fichierfermé!H97:EA97, tu vas cliquer dans le fichier contenant la plage intéressante, H97:EA97, tu y surlignes les cellules de H97 à EA97 (clic gauche enfoncé de H97 à EA97).

Lorsque tu as fini d'écrire la formule, tu mets H$97:EA$97 au lieu de H97:EA97. Puis tu copies cette formule et tu la colles vers la droite (ou tu sélectionnes la cellule B90 puis tu tires la poignée de recopie vers la droite).

@ plus
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
185
Réponses
10
Affichages
231

Statistiques des forums

Discussions
312 196
Messages
2 086 094
Membres
103 116
dernier inscrit
kutobi87