(RESOLU) Fonction DECALER avec cellule liée comme référence

Jo_VBA

XLDnaute Nouveau
Bonjour à tous,

Après une matinée de recherche et d'essai, je dépose les armes et viens vers vous pour m'aider à résoudre ce problème.

Dans un tableau, j'ai une liste de pièce, référencée avec un numéro de pièce (Ex: 91-370...)
Le numéro n'est pas écrit en dur mais est liaison d'un autre onglet où j'ai ma liste de pièce.
Ex: C11 = "='Spare Parts'!E624"

upload_2017-8-28_14-32-57.png


En G11 et H11, j'aimerais avoir une formule qui afficher 2 autres informations du même article provenant de l'onglet "Spare Parts" à savoir la quantité et le prix.
Pour cela, j'ai commencé à écrire cette formule pour G11 :
=SI($C11<>"",DECALER(INDIRECT(CELLULE("adresse",$C11)),0,4),"")
Malheureusement, je n'arrive pas à récupérer la valeur "='Spare Parts'!E624" sous forme de texte pour l'utiliser comme référence à la fonction DECALER, je récupère à chaque fois la valeur de la cellule, à savoir le numéro de pièce (91-370...).

Je pense que la formule DECALER est correcte mais que la coquille se situe avec l'utilisation de INDIRECT et CELLULE, qui ne probablement pas utiliser correctement.
J'espère avoir été assez clair, merci d'avance au contributeur !
 
Dernière édition:

Dugenou

XLDnaute Barbatruc
Bonjour,
Au vu de l'image il n'y a pas de valeur en C11 : il semble que la valeur à chercher soit en C10.
Tu pourrais faire plus simple avec un rechercheV ou index-equiv.
Idéalement une pj avec une partie de fichier (anonymisé, sans données réelles) permettrait de t'aider plus efficacement.
Cordialement
 

Jo_VBA

XLDnaute Nouveau
Bonjour,

Merci pour votre aide !

Voici un petit fichier exemple.

La solution de mécano41 fonctionne également pour mon fichier, merci !

J'aurais quand même bien voulu savoir si en passant par des références liées on y arrive ou pas.
A moins qu'il y ait des limitations pour ce genre de chose dans Excel.

Merci d'avance.
 

Pièces jointes

  • unnamed.xlsx
    15 KB · Affichages: 39

Dugenou

XLDnaute Barbatruc
Re,
Voir pj avec l'utilisation des références liées.
Pour avoir l'adresse de liaison dans le indirect tu dois mettre en place une fonction perso utilisant LIRE.CELLULE qui est considérée comme un élément de macro d'où l'extension .xls
Juste pour la culture, car un peu lourdingue à mon avis avec tes données.
Cordialement
 

Pièces jointes

  • joVBA.xls
    40 KB · Affichages: 35

Jo_VBA

XLDnaute Nouveau
Merci pour tes explications Dugenou !

Effectivement, comme tu le dis, LIRE.CELLULE doit passer par un nom (formule XL4 d'après ce que j'ai compris sur différent site), difficilement applicable pour mon exemple.

Je reste donc sur la solution de mécano41.

Merci à vous 2 !
 

job75

XLDnaute Barbatruc
Bonjour Jo_VBA, Dugenou, mécano41,

En complétant la formule de liaison en C11 :
Code:
=CELLULE("address";'Spare Parts'!$E$2)&"/"&'Spare Parts'!$E$2
En G11, pour les versions Excel acceptant SIERREUR :
Code:
=SIERREUR(DECALER(INDIRECT(GAUCHE($C11;TROUVE("/";$C11)-1));;4);"")
Fichier .xlsx joint.
 

Pièces jointes

  • unnamed(1).xlsx
    20.6 KB · Affichages: 30

Discussions similaires

Statistiques des forums

Discussions
311 202
Messages
2 077 865
Membres
242 291
dernier inscrit
benanammar