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

reference classeur

  • Initiateur de la discussion andré
  • Date de début
A

andré

Guest
Salut à toutes et à tous,

Dans une formule du type :

=RECHERCHEV(A1;[Classeur1]Feuil1!$A:$B;2;FAUX)

je souhaite remplacer [Classeur1] (ou : [Classeur1]Feuil1!$A:$B) par la réference d'une cellule contenant le texte [Classeur1] (ou ...), de manière à pouvoir choisir le classeur auquel je veux me rattacher (petite liste de validation, of course).

Quelqu'un aurait-il une idée ?

Ândré.
 
A

andré

Guest
Salut C@thy,

Je n'avais pas songé à placer la fonction INDIRECT à l'intérieur d'une formule. merci.

Il y a quelque temps, suite à une autre question à laquelle vous (Monique et toi) m'avez répondu si gentillement, je vous avais demandé pourquoi vous n'aimiez pas cette fonction.
Je n'ai pas eu le plaisir de lire votre réponse.
Peut-elle créer des problèmes, ou simplement être dangeureuse à manipuler par des non initiés ?

Ândré.
 
M

Monique

Guest
Bonjour,

Personnellement, je n'ai pas eu de problèmes avec la fonction INDIRECT, parce que je ne l'utilise pas. Et si je ne l'utilise pas, c'est parce que je ne la comprends pas. Et si je ne la comprends pas, c'est peut-être parce que j'ai une allergie à cette fonction.
Vu son nom, à ta place, je me méfierais.
 
C

C@thy

Guest
André,

comme Monique!

Je l'aime pas (la fonction INDIRECT), elle ne m'a rien fait mais je l'aime pas, c'est tout, pourtant elle est bien pratique.

Oui, c'est sûrement le nom, INDIRECT du gauche ça fait pas du bien! hi!hi!hi!

Moi, je suis une fille directe, j'aime pas les détours (heureusement, y'a pas de fonction DETOUR).

 
A

andré

Guest
Merci les filles,

Moi j'aime tout ce qui fonctionne bien, mais hélas, après essais divers, la solution de C@thy n'est pas une solution à mon problème.

En effet, ce n'est pas une réference entière que je veux remplacer dans toute une feuille, uniquement le chemin d'accès sans la réference de la cellule.

Exemple : j'ai dans un classeur quelques centaines de cellules faisant réference à quelques centaines de cellules d'un autre classeur, dans des formules du type =[Classeur1]Feuil1! A1, =[Classeur1]Feuil1!A2, =[Classeur1]Feuil1!A3, ...
Je veux remplacer toutes les réferences [Classeur1] par des [Classeur2] ou les [Classeur1]Feuil1! par des [Classeur1]Feuil2! ou les [Classeur1]Feuil1! par des [Classeur2]Feuil2!.

Actuellement je sélectionne ma feuille et apporte la modification par un "Remplacer tout".

Pour accélérer la procédure et éviter des erreurs, j'avais songé à taper la nouvelle réference (ou liaison), mais sans la réference de la cellule, dans une cellule quelconque de ma feuille et de faire réference à cette dernière dans mes formules.

Une petite liste de validation avec toutes les possibiltés de réferences m'aurait permis de faire très rapidement des simulations.

La fonction INDIRECT me permet de le faire, mais réference à la cellule comprise, ce qui ne m'avance pas.
Il me reste toujours la macro avec deux listes de validation (la réference existante et la nouvelle) et le "Remplacer Tout".

J'aurais aimé être plus rapide.
Alors si vous avez des idées ...

Ândré.
 
A

andré

Guest
Reasalut les filles,

Je crois avoir trouvé :

=INDIRECT(réference de la cellule reprenant le chemin d'accès sans la reference à la cellule&"réference à la cellule de l'autre classeur ou feuille").

Ceci donne : =INDIRECT(A1&"B1") si A1 est la réference de l'autre classeur (ou feuille) et B1 la réference de la cellule dans l'autre feuille.

Voilà une nouvelle épine que je classe dans ma vitrine-musée (qui commence à bien se remplir, grâce à vous - lol).

Encore merci pour le coup de main.
Ândré.
 
J

Jean-Marie

Guest
Bonjour, Tout le monde

Quel sont les inconvénients de la fonction INDIRECT(), tu veux faire un glisser-déposer ?, tu n'as plus l'adresse évolutive, si modification de lignes ou de colonnes de ta cellule de référence ?

@+Jean-Marie
 
A

andré

Guest
Salut Jean-Marie,

Tout à fait exact, je n'y avais pas songé !

Mais comme dans mon cas précis je l'emploie dans un RECHERCHEV sur des colonnes entières, je ne cours pas ce risque.

En B2 de la Feuil2 : =SI(A2="";"";RECHERCHEV(A2;INDIRECT($A$1&"A:B");2;FAUX))
la cellule A1 contenant le texte : Feuil1!

Je viens de tester en créant des lignes supplémentaires, des copies vers le bas, et pas de problème.
Merci quand même de m'avoir averti.

Ândré.
 
C

C@thy

Guest
Coucou, André, Jean-Marie, Monique,

effectivement, si on fait référence à A10 et que, suite à insertion, suppression de lignes, colonnes, ou déplacement de A10 par cliquer-glisser, A10 ne se trouve plus en A10 et que l'on veut que cela reste A10 malgré tout, il faut faire :

=INDIRECT(INDIRECT("A10"))

(pour compléter ta vitrine-musée)

 
J

Jean-Marie

Guest
Re...

La formule =INDIRECT(ADRESSE(Ligne(Feuil2!A10);colonne(Feuil2!A10))),
supprime l'inconvénient d'une déclaration de cellule fixe.

Il y a aussi la formule =INDIRECT("L"&LIGNE(Feuil2!A10)&"C"&COLONNE(Feuil2!A10);faux)

@+Jean-Marie
 

Discussions similaires

Réponses
4
Affichages
499
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…