Menu déroulant et calcul avec données d'une autre feuille

Bonjour,

J'avais oublié la pièce jointe du message suivant :

Bonjour,

Merci encore pour vos réponses précédentes.

Aujourd’hui je viens vers vous toujours pour le même document mais pour une nouvelle question où je me tire les cheveux dans tous les sens.

Dans la colonne B « libellé de l’acte », j’ai un menu déroulant. Cette colonne me sert de « référence » pour les calculs des colonnes E, F, G, H, I, et J.

Dans la colonne E « prix de vente du dispositif médical », je dois faire un calcul en utilisant des données de la feuille 2 : D « prix d’achat fournisseur « /G « 1-taux de structure ».

Mon questionnement est que je ne sais pas comment une formule INDEX ;EQUIV avec un calcul.

Pouvez-vous encore m’éclairer, cela fait plusieurs jours que je suis sur cette question et à cette allure, je vais finir chauve !

J’espère avoir été suffisamment claire et dans tous les cas, merci d’avance.

Morichouette

Bonjour,vous pouvez utiliser la fonction décaler.

Vous savez que

=INDEX(Feuil2!$H$1:$H$7;EQUIV(B22;Feuil2!$A$1:$A$7;0))

est votre référence, c'est à dire une cellule sur laquelle il faudra ajouter ou soustraire quelque chose

A partir de là vous pouvez vous dire je veux cette référence - la quatrième case à gauche de celle-ci

=INDEX(Feuil2!$H$1:$H$7;EQUIV(B22;Feuil2!$A$1:$A$7;0))-DECALER(INDEX(Feuil2!$H$1:$H$7;EQUIV(B22;Feuil2!$A$1:$A$7;0));0;-4;;)

La fonction décaler utilise ses propriétés (ref;ligne;colonne,[ligne];[colonne])

Donc dans votre cas, la référence on la connait et il suffit donc d'écrire "ma référence - decaler(de ma référence; de 0 lignes vers le bas; de 4 colonne vers la gauche(-4);pas de plage de ligne;pas de plage de colonne)

Pardon si je ne suis pas très clair

Bonsoir et Merci Frederic38

Euhme, je pense avoir compris votre explication Mais je pense que c'est moi qui est du mal m'exprimer.

En fait d'après ma feuille devis unique, j'ai dans ma colonne B un menu déroulant.

Je voudrais que pour chaque info du menu déroulant je puisse dans la colonne E faire un calcul dont les données se trouve dans la feuille 2.

Par exemple, dans la feuille de devis unique dans le menu déroulant en B22, je choisis Acte 4.

Je voudrais en E22 calculer le prix de vente du dispositif médical sur mesure. Le calcul se fait avec des données contenues dans la feuille2. le calcul est le suivant : colonne D : "prix achat fournisseur" divisé par colonne G : "1-tx de ch. structure"

ce qui d'après mon exemple de l'acte 4 donnerait ce calcul : =D6/G6.

et ce dernier calcul apparaitrait dans la feuille de devis unique en E22.

J'espère que j'ai été plus claire

Merci encore et bonne soirée

Morichouette a écrit :

Bonjour,

Mon questionnement est que je ne sais pas comment une formule INDEX ;EQUIV avec un calcul.

Morichouette

Dans mon post précédent c'était un exemple d'utilisation de calcul avec index+equiv (il en existe beaucoup d'autre avec d'autres formules)

Dans votre cas on pourrait appliquer celle-ci, qui fait exactement ce que vous voulez.

=DECALER(INDEX(Feuil2!$H$1:$H$7;EQUIV(B22;Feuil2!$A$1:$A$7;0));0;-4;;) / DECALER(INDEX(Feuil2!$H$1:$H$7;EQUIV(B22;Feuil2!$A$1:$A$7;0));0;-1;;)

Mais je me pose la question... A quoi bon intégrer dans une formule avec index+equiv un calcul puisque le résultat escompté vous l'affichez dans la colonne h de votre feuille 2... (?)

lol Merci encore frederic38. C'est tout a fait exact.

C'est qu'en fait le document est pour l'usage d'une personne encore plus novice que moi

Et effectivement c'est ce que j'avais fais au début et en fait les colonnes H, J et K me permettaient de tester les formules qui m'ont fait perdre tant de cheveux.

Dans le document final elles ne devraient pas y être.

Par contre, j'ai du mal à comprendre le mécanisme de la formule et du coup à l’appliquer pour d'autre formule sur le reste de mon document.

Comme par exemple dans la feuille devis unique, à la colonne F22 je dois faire un calcul avec toujours les données de la feuille 2 : =I2*G2-D2.

Et là encore je sèche complet.

En tout cas merci pour vos réponses et ... votre patience

La formule à coller en F22 et à étirer le bas c'est

=(DECALER(INDEX(Feuil2!$H$1:$H$7;EQUIV(B22;Feuil2!$A$1:$A$7;0));0;1;;) * DECALER(INDEX(Feuil2!$H$1:$H$7;EQUIV(B22;Feuil2!$A$1:$A$7;0));0;-1;;)) - DECALER(INDEX(Feuil2!$H$1:$H$7;EQUIV(B22;Feuil2!$A$1:$A$7;0));0;-4;;)

Cela parait gros et compliqué mais en réalité c'est tout simple :

--> INDEX(Feuil2!$H$1:$H$7;EQUIV(B22;Feuil2!$A$1:$A$7;0)) se bloc va nous positionner dans la colonne h sur la ligne de l'acte.

Donc h6 pour acte 4 ou h2 pour couronne 1. Se bloc va être notre "référence" (une position dans la grille excel)

A partir de cette position on décale le focus en utilisant la fonction decaler.

La fonction décaler à une syntaxe obligatoire (référence, ligne,colonne,[ligne],[colonne]) alors pour calculer i*g-d on écrit

DECALER(INDEX(Feuil2!$H$1:$H$7;EQUIV(B22;Feuil2!$A$1:$A$7;0));0;1;;))

on dit a excel que de notre référence (en bleu)(qui va correspondre à h4 par exemple), on se décale de 0 ligne vers le bas, et 1 colonne vers la droite (pour aller dans la colonne i). une fois qu'on a mis le focus sur cette ligne, on la multiplie par l'autre coordonnée --> DECALER(INDEX(Feuil2!$H$1:$H$7;EQUIV(B22;Feuil2!$A$1:$A$7;0));0;-1;;)) ou ici le "-1" dit que l'on va se décaler d'une case vers la gauche (a contrario, si on avait écrit 1 , excel aurait décalé vers la droite)

J'espère ne pas trop vous avoir embrouillé l'esprit

Bonjour

Merci encore pour votre aide frederic38.

Votre explication est on ne peut plus claire. Du coup, je l'ai adapté à tout le reste du document.

Par contre, dans le document, en B22, j'ai créé un menu déroulant. J'ai remarqué en le testant, que lorsque par exemple, je sélectionne rebasage, tout se fait "automatiquement" (grâce à votre aide d'ailleurs). Là où, je sèche encore, c'est quand je veux par exemple en B23, la sélection du menu déroulant. Du coup, mes lignes suivantes se mettent en erreur.

A mon avis, je dois avoir oublié une manip ou formule a exécuté.

J'ai essayé d'inclure dans mon menu déroulant, une ligne vide, mais ça ne fonctionne pas.

Avez-vous encore une de vos lumières à partager.

Merci d'avance.

Je pense savoir d'où vient la boulette; J'ai remis les listes déroulantes pour toutes les cases avec une petite amélioration, chaque ajout d'acte dans la feuil2 sera automatiquement dans la liste déroulante en feuille 1 (plus besoin de redéfinir la zone nommée)

Dites moi si le problème est bien résolu parce que parfois je comprends mal les énoncés

Vraiment merci Frédéric, c'est génial ce que vous avez fait. puis je abuser et vous demander la manip que vous avez faite?

Mais effectivement je me suis mal exprimée.

Une fois que la personne aura remplie le document, si elle veut remettre comme en B22 une cellule "vierge" (je ne sais pas si le terme est exact). les autres données de la ligne se notent en erreur.

Je sais qu'elle pourrait conserver dans un fichier son document vierge qu'elle pourrait remplir et enregistrer sous un autre nom, mais je me dis que si je peux éviter les éventuelles difficultés, ce serait bien.

Et puis, je trouve que de cette façon, cela fait plus abouti comme document.

Et enfin, j'en apprend encore plus sur excel, pour le plaisir et ça c'est just for me, for me, formidable.

Et puis de parler avec des personnes agréables . Encore merci Frederic38

Abuser ? Non vous ne pouvez pas! C'est interdit par la loi! Ceci dit quand une demande est faite avec politesse et écrite dans un français correct c'est difficile de refuser .

1) Donc dans le fichier j'ai corrigé a vu de nez toutes les résultantes #N/A en faisant comme ceci

si(esterreur(...).;" ";...) qui veut dire globalement, si le résultat de ma cellule est une erreur alors je n'affiche rien(" ") sinon j'affiche mon calcul

2) Pour la correction précédente, l'affichage complète de la liste de validation je suis allé dans le gestionnaire de nom et pour le nom Actes j'ai écrit cette formule

=DECALER(Feuil2!$B$1;1;;NBVAL(Feuil2!$B:$B)-1)

Qui veut dire que je sélectionne une zone qui se décale de b1 d'1 case et qui est d'une longueur de nbval(b:b) donc du nombre de ligne écrite dans la colonne b:b. Je suis pas bon pédagogue donc j'vous laisse chercher des tutos sur la fonction décaler.

3) Pour la ligne vide...Je ne sais plus ce que j'ai mis dans la version que j'ai posté mais au cas où je n'ai pas modifié la liste en feuille2 vous mettez juste un espace dans une cellule de la colonne B cela suffit (en B8 ou en B2 peu importe).

Voilà j'crois qu'on a fait le tour non ?

PS : flûte, j'ai effacé par mégarde F28 et G28 , il faudra que vous re rentriez vos précédentes formules qui doivent être des totaux

Pas bon pédagogue, c'est une plaisanterie, en tout cas, moi je comprends

Et donc merci pour tout.

Je vais me pencher sur les cellules effacées, un jeu d'enfant maintenant!!!!

Merci et encore merci

you're welcome !

Rechercher des sujets similaires à "menu deroulant calcul donnees feuille"