Fonction excel ou VBA ?

Résolu/Fermé
silvercab Messages postés 50 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 7 février 2011 - 14 déc. 2009 à 08:11
silvercab Messages postés 50 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 7 février 2011 - 14 déc. 2009 à 12:21
Bonjour,
J'ai un traitement de données à effectuer, mais je sais pas faire. Faut-il utiliser une fonction excel ou un programme vba?je bute.
Voici le pb
je dois gérer une plage de variables et appliquer une formule (ou autre) pour afficher un résultat

Voici le tableau avec ses données

              a              b               c            d          e      f     g
1    valeur fixe   résultat      variables à entrer
2        40                             50                100         -     -     -



Je dois faire (d2-c2)/4*a2 et l'afficher dans b2
Résultat en b2 : 500

Mais si une valeur venait dans e2 il faudrait appliquer le calcul par
(e2-d2)/4*a2 et remplacer dans b2
          a             b           c          d              e          f         g
1    valeur fixe  résultat      variables à entrer
2        40                          50      100                200        -        -

Résultat en b2 : 1000

Et ainsi de suite jusqu'à g2
En clair tant qu'il n'y a pas de valeur dans la cellule suivante on applique la formule sinon on décale d'un cran.
Maintenant je sais pas si la solution se trouve en Vba, mais ça je ne maitrise pas du tout.
Je ne sais pas si c'est suffisamment explicite mais pas facile à dire et surtout à faire pour moi.
Si je peux être aidé merci d'avance.
Cordialement
A voir également:

10 réponses

informatifien Messages postés 741 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 10 janvier 2016 92
14 déc. 2009 à 08:43
Salut,

dis moi si F2 est rempli E2 sera t'il vide? et ainsi de suite

0
koala. Messages postés 279 Date d'inscription mardi 24 juin 2008 Statut Membre Dernière intervention 6 mai 2011 38
14 déc. 2009 à 08:51
Bonjour,

Peut-être cette formule :

=SI(ESTVIDE(D2);SI(ESTVIDE(E2);SI(ESTVIDE(F2);SI(ESTVIDE(G2);"";(G2-F2)/4*A2);(F2-E2)/4*A2);(E2-D2)/4*A2);(D2-C2)/4*A2)
0
silvercab Messages postés 50 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 7 février 2011 3
14 déc. 2009 à 09:51
Rebonjour,
Merci tout d'abord de vos réponses à tous.
J'ai testé les différentes formules et elles marchent toutes.
Maintenant je vais encore abusé de vos patiences et gentillesses . Si je devais traiter plusieurs cellules par exemple aller jusqu'à la colonne ba, dois-je entrer le nom de toutes les colonnes ou ne peut on pas entrer une plage de cellules comprise entre a et ba?
Pardon d'abuser
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396 > silvercab Messages postés 50 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 7 février 2011
14 déc. 2009 à 10:05
Vous êtes toujours aussi sybillin!!!!!

En plus du fait que les cellules remplies se suivent,on suppose si vous n'utilisez pas de résultat négatifs, que vos valeurs vont en croissant en s'éloignant de la colonne C?

mais on est obligé de supposer...

car dans ce cas ,et dans ce cas seulement ,la solution parrait assez simple:

votre champ de C à BA comme vous le souhaitez:
=(GRANDE.VALEUR(C:BA;1)-GRANDEVALEUR(C:BA;2))*A2/4

vous donnera, si les valeurs sont en ordre croissant, la dernière - l'avant dernière
Si ce n'est pas le cas revenez nous voir avec plus d'explications.

Crdlmnt
0
silvercab Messages postés 50 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 7 février 2011 3 > Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022
14 déc. 2009 à 10:20
J'apprecie votre humour et vous avez raison de vous moquer gentillement de moi.
Non ce n'est pas volontaire mais arriver à etre clair dans ce domaine n'est point facile.
Je mets en œuvre vos conseils, teste cette formule et vous tiens informé.
Bonne journée
0
silvercab Messages postés 50 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 7 février 2011 3 > Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022
14 déc. 2009 à 10:32
Rebonjour,
Je viens de tester et oui cela correspond à mon souhait de la définition de la plage, mais j'ai "nom#?" dans ma colonne resultat, et pas de traitement.
0
silvercab Messages postés 50 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 7 février 2011 3 > Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022
14 déc. 2009 à 10:56
Bien autant pour moi, il manquait simplement le point dans le "grande valeur" de votre formule, et ça marche totalement. J'ignorais cette formule , mais elle simplifie et répond complètement à mes attentes.
Encore merci pour votre aide à tous et particulièrement à Vaucluse pour sa patience.
Bien cordialement et bonne journée à tous
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
14 déc. 2009 à 08:54
Bonjour
vous ne dites pas tout, mais on suppose que les valeurs sont rentrées succesivement en D, E, F ,G?essayez dans ce cas la formule:

=SI(ESTVIDE(D2);0;SI(ESTVIDE(E2);(D2-C2)*A2/4;SI(ESTVIDE(F2);(E2-D2)*A2/4;SI(ESTVIDE(G2);(F2-E2)*A2/4;(G2-F2)*A2/4))))

Attention, la formule utilise le code ESTVIDE de façon à prendre quand même en compte un éventuel 0 dans une cellule.
Donc si vous inscrivez par exemple un 0 en G, c'est l'opération F2-G2 qui sera effectuée.
Si vous voulez considérer le 0 comme vide, remplacer les :
est vide (cell) par cell=0 dans tous les items



Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
silvercab Messages postés 50 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 7 février 2011 3
14 déc. 2009 à 09:00
Toutes les valeurs entrées sont affichées et le calcul se fait entre la dernière et l'avant dernière valeur et ainsi de suite
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
14 déc. 2009 à 09:42
Alors ça devrait marcher avec la formule de mon message....
mais avec toujours avec un petit doute encore:
quand vous dites que toutes les valeurs entrées sont affichées?......c'est à priori une évidence qui ne change pas grand chose aux informations d'origine de votre question. :-)
a savoir essentiellement: peut il y avoir des cellules vides ENTRE les cellules à calculer
Bien crodialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
g Messages postés 1262 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 15 mai 2017 572
14 déc. 2009 à 09:04
Bonjour,
Une autre possibilité:

=SI(G2<>"";(G2-F2)/4*A2;SI(F2<>"";(F2-E2)/4*A2;SI(E2<>"";(E2-D2)/4*A2;SI(D2<>"";(D2-C2)/4*A2;""))))

Bonne journée.
0
informatifien Messages postés 741 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 10 janvier 2016 92
14 déc. 2009 à 09:30
encore une autre :

=SI(D2>0;SI(E2>0;SI(F2>0;SI(G2>0;(((G2-F2)/4)*A2);(((F2-E2)/4)*A2));(((E2-D2)/4)*A2));(((D2-C2)/4)*A2)))
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
14 déc. 2009 à 09:50
Bonjour tous
informaticien:
Votre formule fonctionne, sous réserve,car toutefois, je répéte la remarque associée à ma proposition:
si le 0 doit être reconnu comme une valeur à prendre en compte dans le calcul, ce qui reste dans le domaine du possible, ,votre formule ne le prend pas en compte.

Crdlmnt
0
informatifien Messages postés 741 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 10 janvier 2016 92
14 déc. 2009 à 09:58
Bonjour vaucluse, oui effectivement j'ai oublié de précisé . . .dans ce cas là il suffi de remplacer >0 par <>"" si je ne dis pas de bêtises . . .
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
14 déc. 2009 à 10:39
Bonjour à tous

si j'ai pigé la demande
=SI(NB(C2:AB2)>=2;((DECALER(C2;0;NB(C2:AB2)-1)-DECALER(C2;0;NB(C2:AB2)-2))/4)*A2;0)


0
silvercab Messages postés 50 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 7 février 2011 3
14 déc. 2009 à 12:21
Completement pige et ça marche
0