Calcul d'une suite dans une meme cellule

Bonjour,

J'aimerais savoir comment faire le calcul automatique d'une cellule contenant une suite d'addition et placé le résulat dans une autre cellule.

Exemple:

Cellule A1 contient 1+2+3

Cellules A2 = 6

Merci d'avance si quelqu'un peut résoudre ce problème.

bonjour,

une solution via une fonction personnalisée

Function eval(r As Range) As Variant
    eval = Evaluate(r.Value)
End Function

Bonjour,

Je n'arrive pas à insérer votre fonction... comment je peux l'insérer dans ma feuille de calcul...

Merci d'avance

Bonjour,

question bête mais... pourquoi ne pas mettre un = dans la cellule? comme ca la somme se fait direct...

au lieu d'avoir en A1 : 1+2+3

écrirer (en A1) : =1+2+3

et en tapant sur la touche "entré", la cellule affichera directement la somme (6, dans ce cas)

gigi777 a écrit :

Bonjour,

question bête mais... pourquoi ne pas mettre un = dans la cellule? comme ca la somme se fait direct...

au lieu d'avoir en A1 : 1+2+3

écrirer (en A1) : =1+2+3

et en tapant sur la touche "entré", la cellule affichera directement la somme (6, dans ce cas)

Je souhaite avoir le détails de ma formule dans une colonne à part...

Je suis en train de réaliser une feuille de calcul pour réaliser du métré en btp et de plus les calculs peuvent parfois être longs...

Pour le calcul de cloison de 10cm par exemple, je peut avoir la cellule en question avec : 10.55+1.5+2.55+3.54+etc...

Donc je souhaite avoir 3 colonnes de quantités (linéaires / surfaces / volumes) et une colonne total à coté qui le calcul automatiquement mon résultat...

Je souhaite aussi utilisé un pavé numérique qui sera plus ou moins éloigné de l'écran... (reste à voir si cela sera pratique et utile...)

Kalahach a écrit :

Bonjour,

Je n'arrive pas à insérer votre fonction... comment je peux l'insérer dans ma feuille de calcul...

Merci d'avance

pour insérer la fonction

copier le du forum

faire alt-F11 pour aller dans l'éditeur VBA

menu->insérer->module

coller le code

faire alt-f11 pour revenir aux feuilles excel

la fonction personnalisée est disponible dans excel et peut-être appelée comme suit

=eval(A1)

h2so4 a écrit :

pour insérer la fonction

copier le du forum

faire alt-F11 pour aller dans l'éditeur VBA

menu->insérer->module

coller le code

faire alt-f11 pour revenir aux feuilles excel

la fonction personnalisée est disponible dans excel et peut-être appelée comme suit

=eval(A1)

Merci c'est exactement ça que je cherchais...

Pensez vous que c'est possible de modifier ce code pour la gestion des décimales?

Merci d'avance

bonjour,

ceci devrait fonctionner.

Function eval(r As Range) As Variant
    eval = Evaluate(replace(r.Value,",","."))
End Function
h2so4 a écrit :

bonjour,

ceci devrait fonctionner.

Function eval(r As Range) As Variant
    eval = Evaluate(replace(r.Value,",","."))
End Function

Merci encore pour ce code ,

Les décimales sont bien prises en compte dans les calculs.

Par contre, si je sauvegarde mon fichier en format excel sans prise en charge des macros, est-ce que la formule s'effectuera lorsque j'ouvrirai mon fichier???

Kalahach a écrit :

Par contre, si je sauvegarde mon fichier en format excel sans prise en charge des macros, est-ce que la formule s'effectuera lorsque j'ouvrirai mon fichier???

non, à moins de sauver cette macro dans un autre fichier au format add-in (.xlam) et de rajouter cet add-in via le menu des options excel

pour ce faire :

je ne suis pas sûr de la dénomination des menus en français (ayant un version Uk)

ouvrir un nouveau classeur

alt-f11

menu-> insérer->module

copier le code

alt-f11

sauver le fichier sous

choisir un nom de fichier (par exemple mesfonctions) et choisir le type add-in xlam

ensuite

option excel

choisir add-in, gérer les add-ins, aller

parcourir, puis sélectionner le fichier xlam que tu viens de créer

à présent dans ton tes classeurs la fonction eval sera disponible.

RE bonjour à tous,

Tout d'abord désolé de ne m'être éclipsé sans un petit merci à ceux qui ont contribuer à mon aide...

J'ai réussi à insérer la fonction ou variable mais je n'arrive pas à l'utilisé et à l'imbriquer avec d'autres colonnes...

J'ai 3 colonnes (ml / m2 / m3) je souhaiterais imbriquer la fonction éval (vu plus haut) avec ces 3 colonnes.

Exemple :

Si je me place sur une cellule de la colonne ml je sais que ce sera des ml idem pour m2 / m3 d'ailleurs (logique)

je calcul mes ml (5+5+5+5) dans la cellule totale c égale à 20 mais si je me place dans m2 je n'aurais pas la fonction eval car je n'arrive pas à rentrer des conditions de si ou de ... je ne sais pas quoi afin que si je rentre des suites de nombres dans une cellule de ml ou de m2 ou de m3 je voudrais voir apparaitre le résultat et ainsi pouvoir réaliser mes calculs.

J'espère avoir été clair sinon je joins un petit fichier pour ceux qui souhaite me faire avancer.

Dans l'attente, salutations

Bonsoir,

tu peux donner un fichier exemple ?

Bonsoir,

Sans passer par un add-in et visualiser le détail d'une formule.

En Français ou en anglais...

Cdlt.

Option Explicit
Public Function Affiche_Formule(Cellule As Range, Optional t) As String
10        Application.Volatile True
20        If IsMissing(t) Then
              ' en l'absence d'argument, langage utilisateur
30            Affiche_Formule = Cellule.Range("A1").FormulaLocal
40        Else
              ' si l'argument est présent, langage anglais
50            Affiche_Formule = Cellule.Range("A1").Formula
60        End If
End Function

Bonsoir,

Voici un fichier exemple pour que vous puissiez comprendre le problème.

Salutations

bonsoir,

merci pour le fichier, mais je suis désolé, mes capacités de déduction étant limitées, je ne parviens à comprendre quel est le problème sans un minimum d'explications.

Voilà pour les explications donnés plus haut...

Je souhaiterais étendre la fonction eval (vu plus haut) en fonction de mes 3 colonnes (ml/m2/m3)

Exemple :

Je souhaiterai que dans ma colonne "largeur" se calcul automatiquement la colonne ml ou m2 ou m3

S'il y à 5+5+5+5 dans la colonne ml ou 5+5+5+5 dans la colonne m2 ou 5+5+5+5 dans la colonne m3 , je souhaiterais avoir le même résultat.

Dans mon cas, =SI(F12="";"";eval(F12)) mais ca ne vaut que pour F12 alors que si je veux mettre quelque chose dans la colonne G bien le calcul ne sera pas pris en compte pareil en colonne H

Je souhaiterai que si F12 et si G12 et si H12 il y a un calcul dedans que ca soit pris en compte dans le total.

J'espère avoir été clair dans mon exemple, ce n'est pas évident d'expliquer sur des fonctions qu'on ne gère pas trop.

Je connais la fonction si mais je ne sais pas imbriquer plusieurs si dans le si (lol)

Merci d'avance.

rebonsoir,

voici une formule sur base de ce que j'ai compris

=SI(F12<>"";eval(F12);SI(G12<>"";eval(G12);SI(H12<>"";eval(H12);"")))
h2so4 a écrit :

rebonsoir,

voici une formule sur base de ce que j'ai compris

=SI(F12<>"";eval(F12);SI(G12<>"";eval(G12);SI(H12<>"";eval(H12);"")))

Bonjour et merci h2so4

Ta formule fonctionne dans mon classeur mais apparemment la fonction eval n'est pas reconnu ou pris en charge lorsque celle ci pointe vers une autre fonction.

Exemple:

Je souhaite connaitre la surface d'un mur d'une pièce.

Avec la fonction eval je retrouve le linéaire ou le périmètre de la pièce ensuite je lui donne sa hauteur pour retrouvé sa surface totale.

Sur ce mur il y a bien des ouvertures (fenêtres/portes/etc...) que je souhaite déduire de la surface totale mais je souhaite également conservé le résultat de cette surface dit déduites afin de m'en servir par la suite.

Le calcul :

Je souhaiterais une fois le calcul de (eval) effectue faire un calcul en fonction de

=SI(I13=0;+J13*K13;I13*J13*K13)

J13 = résultat de la formule "=SI(F12<>"";eval(F12);SI(G12<>"";eval(G12);SI(H12<>"";eval(H12);"")))"

Excel me renvoie #VALEUR - Pourquoi?

Merci d'avance

Bonjour,

je n'ai malheureusement toujours pas compris quel était le problème, à tout hasard voir correction dans fichier joint.

fichier supprimé à la demande de son auteur.

h2so4 a écrit :

Bonjour,

je n'ai malheureusement toujours pas compris quel était le problème, à tout hasard voir correction dans fichier joint.

Re bonjour

C'est exactement ca mais je ne comprends pas comment tu as fais car dans le fichier c les mêmes formules et il n'y a plus les #VALEURS

Peut tu me dire comment tu as fait?

Car la je ne vois pas comment??

Merci d'avance

Rechercher des sujets similaires à "calcul suite meme"