Fonction excel ou VBA ?

Résolu
silvercab Messages postés 53 Statut Membre -  
silvercab Messages postés 53 Statut Membre -
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 781 Statut Membre 92
 
Salut,

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

0
koala. Messages postés 294 Statut Membre 38
 
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 53 Statut Membre 3
 
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 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 449 > silvercab Messages postés 53 Statut Membre
 
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 53 Statut Membre 3 > Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 53 Statut Membre 3 > Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 53 Statut Membre 3 > Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 449
 
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 53 Statut Membre 3
 
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 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 449
 
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 1285 Statut Membre 577
 
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 781 Statut Membre 92
 
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 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 449
 
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 781 Statut Membre 92
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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 53 Statut Membre 3
 
Completement pige et ça marche
0