Fonction excel ou VBA ?
Résolu
silvercab
Messages postés
53
Statut
Membre
-
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
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
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
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:
- Fonction excel ou VBA ?
- Fonction si ou - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Fonction moyenne excel - Guide
- Excel compter cellule couleur sans vba - Guide
10 réponses
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)
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)
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
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
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
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
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
Encore merci pour votre aide à tous et particulièrement à Vaucluse pour sa patience.
Bien cordialement et bonne journée à tous
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?
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?
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.
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)))
=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)))
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
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
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 . . .