Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1230 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Selectionner une plage de cellule en fonction d'une autre cellule

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Selectionner une plage de cellule en fonction d'une autre cellule

n°1711834
kounflex
Posté le 02-04-2008 à 23:39:56  profilanswer
 

Salut a tous,
 
Si quelqu'un peut m'aider :
 
J'aimerai pouvoir selectionner une plage de cellule en fonction de la valeur d'une autre cellule.
 
Pourquoi une plage de cellule? Ce serait en fait pour la RECUPERER et lui appliquer une formule (en l'occurence une formule de rendement annualisé et de volatilité annualisée)
 
Ci joint un fichier qui reprend ces infos :
 
Dans 'Perf', il y a des infos relatives aux investissements A B C et D
 
Dans 'Feuil2', on trouvera les formules que j'aimerai utiliser.
 
La cellule de condition est en A1.

mood
Publicité
Posté le 02-04-2008 à 23:39:56  profilanswer
 

n°1711846
kounflex
Posté le 03-04-2008 à 00:11:19  profilanswer
 

Oups pas de piece jointe ?!
 
Bon en gros,il ya 2 feuilles, comme je l'ai dit au dessus.
 
Dans 'Perf' :
 
                 A           B          C          D
 
dates1      perf1a   perf1b    perf1c    perf1d
dates2      perf2a   perf2b    perf2c    perf2d
etc...
datesn      perfna   perfnb    perfnc    perfnd
 
 
L'idée, c'est de récupérer pour chacun des investissements A B C et D, la plage de cellule (donc les perf) qui aura pour premiere cellule la perf dont la date est mentionnée dans la cellule A1 dans 'Feuill1' .
 
Bien sur la date presente en A1 dans 'Feuill1' est "trouvable" dans le range des dates dans 'perf'
 
Une fois cette plage identifiée, lui appliquer ensuite une formule du type: produit(1+plage de cellule)^(12/nb(plage de cellule))-1
 
Ce calcul s'effectuera dans 'Feuil1'.
 
Y a t il une solution pour effectuer cette operation?
 
Dois je passer obligatoirement par VBA??
 
En tout cas, merci pour l'aide que vous pourrez m'apporter.

n°1711893
babasss
Posté le 03-04-2008 à 09:26:32  profilanswer
 

Un exemple un peu plus concret serait pas si mal... (ou au moins le contenu de la Feuil1)

 
kounflex a écrit :

Oups pas de piece jointe ?!
L'idée, c'est de récupérer pour chacun des investissements A B C et D, la plage de cellule (donc les perf) qui aura pour premiere cellule la perf dont la date est mentionnée dans la cellule A1 dans 'Feuill1' .


et comment est déterminé la dernière cellule de la plage ?


Message édité par babasss le 03-04-2008 à 09:27:08

---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1712003
kounflex
Posté le 03-04-2008 à 11:49:44  profilanswer
 

bonjour babass,  
 
Pour commencer, merci pour ton attention et ton aide
 
La derniere cellule de la plage serait la derniere cellule remplie.
 
Concernant, la Feuil1 :
 
A1 = date en question
 
et dans la colonne B par exemple, on aurait les investissements A B C et D
Avec en colonne C le rendement annualisé...
 
" (produit(1+plage de cellule)^(12/nb(plage de cellule))-1 )"
 
... de chacun des investissements en fonction de la date de départ en A1.
 
Voili voilou, j'espere avoir été un peu plus clair cette fois ci
 
Au plaisir de vous relire!

n°1712129
babasss
Posté le 03-04-2008 à 14:07:23  profilanswer
 

Alors c'est un peu compliqué....
 
Déjà, il faut que tu récupères le numéro de la ligne de la feuille 2 qui correspond à la date de la feuille 1 : EQUIV(Feuil1!A2;Feuil2!A:A)
 
Ensuite tu récupères le numéro de la dernière ligne où il y a une valeur (ou pour plus de simplicité tu peux considérer que c'est la ligne 65536) : EQUIV(MAX(Feuil2!A:A);Feuil2!A:A) (j'utilise max car il s'agit d'une date et que tu vas les classer par ordre chrono)
 
Aprés on va utiliser la fonction indirect qui va simuler ta cellule de départ pour une fonction avec comme argument le nom de la feuille, le nom de la colonne et le numéro de la ligne (obtenu ci-dessus) : INDIRECT("Feuil2!"&"B"&EQUIV(Feuil1!A2;Feuil2!A:A)) ; et pour la cellule d'arrivée : INDIRECT("Feuil2!"&"B"&EQUIV(MAX(Feuil2!A:A);Feuil2!A:A))
 
Tu as maintenant la référence de ta cellule de départ, celle de la cellule d'arrivée, sonc ta plage sera : INDIRECT("Feuil2!"&"B"&EQUIV(Feuil1!A2;Feuil2!A:A)):INDIRECT("Feuil2!"&"B"&EQUIV(MAX(Feuil2!A:A);Feuil2!A:A))
 
NB : Je me suis basé sur le fait que la plage est uniquement sur la colonne B


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1712135
kounflex
Posté le 03-04-2008 à 14:13:58  profilanswer
 

ENORME !
Merci beaucoup, j'essaie de l'appliquer a mon fichier, et je te reviens !

n°1712144
kounflex
Posté le 03-04-2008 à 14:34:38  profilanswer
 

j'AI ESSAYé ... et ca marche !!
 
Un grand merci BAbass
 
Merci encore!
Ce qui me rassure, c'est qu'on peut faire tout ce qu'on veut en fait avec excel .. et qu'on peut trouver des solutions grace a des gens comme toi ...
 
Ce qui par contre est moins rassurant pour toi, c'est que maintenant je vais souvent faire appel á toi !
;-)
Encore merci

n°1712390
kounflex
Posté le 03-04-2008 à 19:09:47  profilanswer
 

J'ai une derniere requete pour ce post :
 
Tout marche nickel, grace a babass ... maintenant, une fois la plage recupérée je lui applique la formule suivante :
 
produit(1+ PLAGE(..))^(12/nb(PLAGE(..)))-1 pour chacun des investissements A B C et D
 
Prenons pour exemple l'investissement C ; Disons que la date en A1 = 31/01/2006  
 
Comment faire pour afficher un résultat du style "cellule vide", lorsqu'a la date en A1, l'investissement C n'existe pas encore (les performances n'existent pas encore pour cet investissement,il n'est lancé que le 31/01/2007 par exemple)?
 
Merci d'avance votre Aide.

n°1712394
kounflex
Posté le 03-04-2008 à 19:20:34  profilanswer
 

Le resultat "cellule vide" s'applique bien entendu a la cellule ou se trouve la formule enoncée ci dessus.
 
Merci POUR votre aide!
:-)

n°1712405
babasss
Posté le 03-04-2008 à 19:55:49  profilanswer
 

Juste pour une cellule, je dirais que tu peux faire un :  
SI(INDIRECT("Feuil2!"&"B"&EQUIV(Feuil1!A2;Feuil2!A:A))=<0;"cellule vide";formule)
 
Si tu veux généraliser aux 4 colonnes  (A,B,C et D) :
SI(NB.VIDE(INDIRECT("Feuil2!"&"B"&EQUIV(Feuil1!A2;Feuil2!A:A)):INDIRECT("Feuil2!"&"B"&EQUIV(Feuil1!A2;Feuil2!A:A)))<>0;"cellule vide";formule)


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
mood
Publicité
Posté le 03-04-2008 à 19:55:49  profilanswer
 

n°1712423
kounflex
Posté le 03-04-2008 à 20:24:49  profilanswer
 

Merci Babass, nickel ca marche !
 
J'te remercie encore d'etre aussi reactif.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Selectionner une plage de cellule en fonction d'une autre cellule

 

Sujets relatifs
fonction pour lister les fichiers d'un repertoire[PHP] fonction ftp_ pour déplacer un fichier
passage de l'intérieur d'un tableau par référence dans une fonction ?Delphi- selectionner des cases
Fonction pour convertir chaine ASCII en caracteresfonction matcher connue en PHP mais pas en JAVA
Formule vba avec plage de taille variableLes fichiers dans une fonction
erreur 3664 pour une requete sql avec la fonction openrecordsetModification d'une fonction pour selectionner une plage de cellule
Plus de sujets relatifs à : Selectionner une plage de cellule en fonction d'une autre cellule


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR