formule qui appelle une cellule avec Variable

  • Initiateur de la discussion Nobed
  • Date de début
N

Nobed

Guest
Bonsoir,

Est il possible d'affecter une cellule par variable.
Exemple
Cellule B1 =si(D1;E1=100;0)
je veux remplacer E1 par une variable
ou par la valeur de la cellules A1.

Si dans A1 j'ai 1

Comment écrire une formule qui accepte cela.

Cellule B1 =si(D1;color=#FF0000]'E'+'A1'[/color]=100;0)

Merci
 
N

Nobed

Guest
Nobed écrit:
Bonsoir,

Est il possible d'affecter une cellule par variable.
Exemple
Cellule B1 =si(D1;E1=100;0)
je veux remplacer E1 par une variable
ou par la valeur de la cellules A1.

Si dans A1 j'ai 1

Comment écrire une formule qui accepte cela.

Cellule B1 =si(D1;'E'+'A1=100;0)

Merci
 

ODVJ

XLDnaute Impliqué
Bonjour,

sans bien comprendre le sens de ta formule en B1, je dirai qu'il faut écrire ta formule conditionnelle en E1 pour que E1 soit affectée par une variable ou par A1 selon le contenu de D1.
exemple : E1=si(D1;100;A1) en supposant que D1 soit une valeur genre vrai/faux ou 0/1

sinon, si tu veux que E1 et A1 soient affectées selon le contenu de D1, tu mets 2 formules :
E1=si(D1;100;0)
A1=si(D1;100;1)

sachant que 100, 0 et 1 peuvent provenir d'autres cellules pour assouplir ton modèle.

cordialement
 
N

Nobed

Guest
Bonjour,

Merci ODVJ, mais je me suis vraiment mal expliqué.

Je veux être capable d'utiliser le résultat de A1 (qui est 1) ce qui représente la ligne ou je peux placer ma réponse.

SI je sais que ma colonne est E, donc avec E et 1, j'ai ma cellule E1, mais comment interpréter cela dans une formule

B1 =si(D1;E1=100;0), je veux remplacer E1 par la lettre E et mon résultat de A1 qui est 1, donc E1

Dans une formule ça donnerais B1 =si(D1;'E'+Valeur(A1)=100;0)
c'est que je veux atteindre la cellule E1 avec 'E'+Valeur(A1).
Mais comment interpréter cela dans une formule?

Merci.
 
O

ODVJ

Guest
Bonjour,

une partie de réponse déjà :
si tu veux obtenir le contenu d'une cellule dont tu construis la référence, utilise la fonction indirect().
exemple : si A1 contient 3 et E3 contient 12, INDIRECT('E'&A1) donnera 12.

2ème élément de réponse : si tu veux que la cellule 'E'&A1 (ie E3 dans l'exemple) se charge de la valeur 100 si D1 est VRAI, tu peux écrire dans chaque cellule de la colonne E:E la formule =SI(D1;SI(LIGNE()=$A$1;100;0);0)

A+
 
N

Nobed

Guest
Bonjour,
Voici mon problème,

J'ai deux feuilles, une qui est mes Entrées et la seconde qui est Clients (automatisée par ma feuille Factures)
Ma feuille Factures remplie automatiquement ma feuille Clients, lorsque je fais ma factures.
Dès la réception d'un chèque je dois entrer la date Colonne O dans la feuille Clients
Après cela je dois me rendre à la feuille Entrées et rechercher la ligne qui se rapproche à la date de réception
du chèque et y entrer les montants.

Mais la colonne R de la page Clients est activé en entrant une date de réception à la colonne O
Ainsi je voudrais me servir de cette information pour placer automatiquement les montants
dans les cellules appropriées dans la feuille Entrées.

Montants, Hotel, Avion, Taxi, Manger, Autres de la feuille Clients doivent se retrouver dans la feuille Entrées après que j'ai reçu le chèque et à la bonne ligne.

Peut être une formule dans la cellule S5 de la feuille Clients du genre Cells(Entrées!Ligne, Entrées!Colonne) = F5 et ainsi de suite.


Avez-vous une formule pour moi?

Merci. [file name=Exemple_20060323194008.zip size=17163]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple_20060323194008.zip[/file]
 

Pièces jointes

  • Exemple_20060323194008.zip
    16.8 KB · Affichages: 31

ODVJ

XLDnaute Impliqué
Bonsoir,

voilà une solution à base de formules matricielles et d'indirection.
j'ai nommé les zones clients pour plus de clarté.
par contre je n'ai pas été trés large dans les dimensions des zones.

j'ai joué un peu avec le modèle pour vérifier son comportement. ça semble pas mal.

ce que j'ai modifié est en rouge (généralement).

les formules sont sur fond jaune.

A+ [file name=XLD_nobed.zip size=30083]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/XLD_nobed.zip[/file]
 

Pièces jointes

  • XLD_nobed.zip
    29.4 KB · Affichages: 25
N

Nobed

Guest
Oui monsieur ODVJ,

Je suis vraiment impressionné de voir tout ce que vous avez fait pour solutionner mon problème.

Vraiment je vous suis redevant. Je ne sais pas combien d'heures que vous avez passé sur cette solution.

Jamais, j'aurais trouvé sans votre aide.

Un GROS MERCI ODVJ.

Je vais faire des essaies maintenant.

Moi de Montréal/Québec/Canada, je vais parler de votre site à mon entourage.

Encore Merci et Merci.
Nobed
 
N

Nobed

Guest
Bonsoir,

C'est super, ça fonctionne très bien.

J'ai modifier la colonne O5 en y ajoutant une validation car si j'entrais une date inférieure à la première valeur de la plage ça causait des problèmes.

Comme vous me dites, j'ai un problèmes avec les colonnes 'Autres', c'est qu'une est pour les autres dépenses et l'autre pour autres clients. J'ai corrigé ce problème en déplaçant juste avant 'Montant' et en renommant la première colonne 'Autres' sur la feuille 'Entrées' par 'Clients'

Maintenant j'aimerais savoir comment je dois faire pour modifier une formule que vous avez entré sur la feuille 'Entrées', j'aimerais y changer quelques lignes.
{=SOMME(SI(LIGNE()-4=LigneDest;INDIRECT(C$3);0))}
exemple:
j'aimerais sous la colonne 'Clients' sur feuille 'Entrées' avoir le nom du client qui serait entré dans la feuille 'Clients', si possible car la formule présentement ne fait qu'une somme donc n'affiche rien.

Si je me place sur la cellule et que j'essaie de changer quelque chose ça ne fonctionne pas.

Merci.
 

ODVJ

XLDnaute Impliqué
Bonjour Nobed,

si tu veux rapatrier le nom du client dans la colonne clients de l'onglet entrées (ex 1ère colonne autres) tu mets la formule suivante : =SI(ESTNA(EQUIV(LIGNE()-4;LigneDest;FAUX));'';INDEX(INDIRECT(D$3);EQUIV(LIGNE()-4;LigneDest;FAUX);1))

A+
 
N

Nobed

Guest
Bonsoir,

Merci bien ODVJ,

J'ai remplacé la colonne Clients dans lafeuille Entrée par ceci
=SI(ESTNA(EQUIV(LIGNE()-4;LigneDest;FAUX));'';INDEX(INDIRECT(C$3);EQUIV(LIGNE()-4;LigneDest;FAUX); 1))

J'ai remplacé D3 par C3 et ça fonctionne très.

Merci et bonne soirée.

Nobed
 
N

Nobed

Guest
Autre chose,

Qu'est que c'est les braquettes au début et à la fin de la formule, si je veux modifier une formule, Excel enlève ces braquettes et la formule ne fonctionne plus.

{=SOMME(SI(LIGNE()-4=LigneDest;INDIRECT(D$3);0))}

Merci
 

ODVJ

XLDnaute Impliqué
Bonsoir,

les accolades en début et en fin de formule sont le signe d'une formule matricielle.

pour les obtenir, il faut faire CTRL+ALT+ENTER lors de la validation de la formule.

C'est vrai que sans ça , ça ne fonctionne pas.

A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 536
dernier inscrit
komivi