Aide pour addition complexe Excel

Résolu/Fermé
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011 - Modifié par irongege le 5/01/2011 à 14:27
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011 - 5 janv. 2011 à 16:01
Bonjour,

Je suis confronté à un problème sur excel qui est le suivant:

Je ne trouve pas la formule qui me permet de calculer le TOTAL de cette opération soit "3+12+24" + "15" + "20+3". Je précise que je suis obligé de saisir le "3+12+24" et le "20+3" car ça me sert pour autre chose. En effet, j'ai besoin de connaître le nombre de "nombres" dans chaque cellule (ici en A1 j'en ai 3, 1 en A2 et 2 en A3).

ex : A

1 3+12+24
2 15
3 20+3

4 TOTAL

Franchement si quelqu'un trouve je lui tire mon chapeau car j'ai tout essayé sans succés.

Merci par avance.





A voir également:

18 réponses

ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
5 janv. 2011 à 12:04
bonjour
deux fonctions VBA qui peuvent reopondre a la question
- somme qui fait la somme d'une chaine s du type "21+3+4"
- total qui fait la somme de la plage x

Function somme(ByVal s As String) As Long
Dim p As Long
Dim x As Long
If s = "" Then
  somme = 0
Else
  p = InStr(1, s, "+")
  If p > 0 Then
    x = Round(Val(Left(s, p - 1)))
    somme = somme(Right(s, Len(s) - p)) + x
  Else
    somme = Val(s)
  End If
End If
End Function

Function total(x)
Dim s As Long
Dim c As Range
s = 0
For Each c In x
  s = s + somme(c)
Next c
total = s
End Function


bonne suite
1
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 12:11
Merci, c'est très instructif mais je préfèrerais ne pas passer par VBA si c'est possible biensur...
0
Aprexia Messages postés 82 Date d'inscription vendredi 17 décembre 2010 Statut Membre Dernière intervention 14 mai 2013 24
5 janv. 2011 à 11:29
Bonjour.

Le sens de ta question n'est pas très clair.
Qu'entend tu par nombre de nombre?
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 11:31
J'ai édité, est-ce plus clair ??
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
5 janv. 2011 à 11:31
Bonjour,

Je n'ai rien compris à ce que tu demandes

Au besoin, mettre le classeur sans données confidentielles en pièce jointe (format XL97-2003) sur
http://cijoint.fr/
ou
https://www.cjoint.com/
et coller le lien proposé dans le message de réponse

0

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

Posez votre question
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 11:34
Malheureusement ce n'est pas aussi simple que ça Ange420 !!
0
Ange420 Messages postés 423 Date d'inscription dimanche 2 janvier 2011 Statut Membre Dernière intervention 14 janvier 2013 234
5 janv. 2011 à 11:56
Désolée je n'avais pas compris ta question en ce sens
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 12:02
Pas grave, merci quand même ;)
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
Modifié par Yul_23 le 5/01/2011 à 11:46
Voila j'ai mis le fichier en ligne, ce que je veux c'est la somme de B2+B3+B4 dans la cellule en jaune.

https://www.cjoint.com/?0bflTYTwdZW

Si se n'est pas encore clair, n'hésitez pas !!
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 5/01/2011 à 11:48
re,
=SI(ESTVIDE(B2);0;NBCAR(B2)-NBCAR((SUBSTITUE(B2;"+";"")))+1)

te donne le nombre de "nombres" en B2

à adapter si b2 est le résultat d'une formule donnant 0 ou ""
Michel
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 11:51
J'ai mis à jour le lien de mon fichier excel qui inclue maintenant une cellule vide, les 2 formule fonctionnent.
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 11:52
Pour info la colonne B est saisie manuellement, elle n'est pas issue d'une formule.
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
Modifié par Yul_23 le 5/01/2011 à 12:01
Euh ça m'aide pas plus que ça à moins que je sois passé à côté de quelque chose, tu peux m'en dire un peu plus stp ??
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
5 janv. 2011 à 11:57
tu mets ma formule sous forme matricielle et tu as le résultat...
:-(
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 12:01
Je ne suis pas expert en la matière, peux-tu m'éclairer sur ce qu'est la forme matricielle stp ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
5 janv. 2011 à 12:05
=SOMME(SI(NON(ESTVIDE(B2:B4));NBCAR(B2:B4)-NBCAR((SUBSTITUE(B2:B4;"+";"")))+1))

Formule à valider par « ctrl+maj+entrée » (et non directement par « entrée »), le curseur clignotant dans la barre de formule
zones B2:B4 à adapter à ton classeur
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 12:10
Merci michel mais le résultat de ta formule me donne le total de nombre soit 6 alors que ce qui m'intéresse en fait c'est de trouver 77 soit 3+12+24+15+20+3. As-tu encore une merveilleuse formule sous la main ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 5/01/2011 à 12:51
Je reprend ta demande
j'ai besoin de connaître le nombre de "nombres" dans chaque cellule (ici en A1 j'en ai 3, 1 en A2 et 2 en A3).

...
0
tontong Messages postés 2563 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 17 octobre 2024 1 058
5 janv. 2011 à 12:38
Bonjour,
Le fichier joint présente deux ébauches de solutions:
https://www.cjoint.com/?0bfmJSm5WcC
Faut-il poursuivre?
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 14:08
Merci tontong mais j'avais déjà essayé avec Données/Convertir et oui ça marche mais ça reste une manipulation manuelle.
Pour ce qui est de ta deuxième solution, elle ne fait que mettre bout à bout chaque nombre sans pour autant en faire la somme.. C'est presque bon... Je sens qu'on est plus très loin d'y arriver !
0
tontong Messages postés 2563 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 17 octobre 2024 1 058
5 janv. 2011 à 14:23
Non la somme est bien effectuée en B7.

Il est peut-être possible d'obtenir un tableau équivalent à celui obtenu par " Données_Convertir" avec des fonctions "texte"(Substitute, Stxt...) mais il faudrait quelques précisions supplémentaires. Combien de nombre maxi par cellule? combien de chiffres maxi par nombre?

La solution de ccm81 mérite certainement d'être testée.
0
Ange420 Messages postés 423 Date d'inscription dimanche 2 janvier 2011 Statut Membre Dernière intervention 14 janvier 2013 234
5 janv. 2011 à 12:39
J'ai trouvé ce lien et essayé la formule matricielle fonctionne mais il n'y a pas de + entre les chiffres donc au lieu d'avoir 5+6+7 il est écrit 567 le résultat est bien 18.
=SOMME(1*STXT(A2;LIGNE(INDIRECT("1:"&ENT(LOG(A2))+1));1))
https://forum.excel-pratique.com/viewtopic.php?forum_uri=excel&t=19714&start=
Peut être que saurez vous la modifier pour conserver vos +.
C'est juste une proposition si elle ne convient pas effacer le message
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 14:14
Merci c'est intéressant mais je ne suis pas assez caler en Excel pour y apporter la modif qui l'adapterait à ma requête.
0
Ange420 Messages postés 423 Date d'inscription dimanche 2 janvier 2011 Statut Membre Dernière intervention 14 janvier 2013 234
Modifié par Ange420 le 5/01/2011 à 14:30
Moi non plus rassure toi !
Par contre si tu peux rajouter une colonne dans ton tableau tu peux à ce moment là utiliser
=SUBSTITUE(A2;"+";"")
et là le 5+6+7 devient 567 et dans la colonne tu peux avec la formule matricielle
=SOMME(1*STXT(A2;LIGNE(INDIRECT("1:"&ENT(LOG(A2))+1));1))
obtenir 18 (ceci pour mon exemple)
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
5 janv. 2011 à 14:03
re

re
a propos de mon post precedent
les noms des fonctions sont maladroits (si utilseés dans un module)

mettre ça dans un module et utiliser somm pour une cellule et tota pour une plage
par exemple

=somm(A1)
=tota(A1:A3)

Function somm(ByVal s As String) As Long
Dim p As Long
Dim x As Long
If s = "" Then
  somm = 0
Else
  p = InStr(1, s, "+")
  If p > 0 Then
    x = Round(Val(Left(s, p - 1)))
    somm = somm(Right(s, Len(s) - p)) + x
  Else
    somm = Val(s)
  End If
End If
End Function

Function tota(x)
Dim s As Long
Dim c As Range
s = 0
For Each c In x
  s = s + somm(c)
Next c
tota = s
End Function


bonne suite
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
Modifié par Yul_23 le 5/01/2011 à 14:18
Merci mais je capte rien à tout ça, c'est encore du VB ou pas ??
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
Modifié par ccm81 le 5/01/2011 à 14:33
re
c'est du vba
tu mets ça dans un module (Alt F11 pour acceder a l'editeur)
puis tu utilises ces fonctions comme des fonctions excel
MAIS c'est du VBA

un exemple d'utilisation

http://www.cijoint.fr/cjlink.php?file=cj201101/cij81aV7W5.xls

bonne suite
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 14:47
Ok tu peux m'indiquer la marche à suivre pas à pas parce que là c'est du chinois pour moi tout ça?
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
5 janv. 2011 à 14:59
re
as tu essayé l'exemple?
si ça te convient
tu mets ça dans un module (Alt F11 pour acceder à l'editeur et copier/coller depuis le post)
puis tu utilises ces fonctions comme des fonctions excel voir B5 pour somm (pour sur 1 seule cellule) et A5 (poursur une plage)

si les macros ne s'executent pas Outils/Macro/Securité Moyen
tu enregistres
tu re-ouvres en acceptant l'execution des macros

bonne suite
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 15:17
Tu va me dire que je suis nul mais j'arrive même pas à coller ta macro...
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 15:27
Nouvelle petite demande, j'ai les intervalles suivants :

(X correspond au nombre que je saisirai manuellement)

- X <ou= 24
- 25 <ou= X <ou= 48
- 49 <ou= X <ou= 72
- 73 <ou= X <ou= 96

En fonction du segment dans lequel se trouve le nombre que je saisi manuellement je voudrai afficher soit 24 (1er intervalle) soit 48 (2ème intervalle) soit 72 (3ème intervalle) soit 96 (4ème intervalle).

Je suis sûre que parmis vous il doit bien en avoir qui doit savoir faire ça ;)
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
5 janv. 2011 à 15:34
re

si le pb precedent est plié il faudrait le dire et le mettre à resolu
Pour un nouveau pb, ouvrir une autre discussion

je suppose que X doit etre saisi dans une cellule (laquelle)
et où veux tu le resultat 24, 48, ...

bonne suite
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 16:01
Ouais je marque résolu et j'ouvre un nouveau.

Merci encore ccm81
0
Ange420 Messages postés 423 Date d'inscription dimanche 2 janvier 2011 Statut Membre Dernière intervention 14 janvier 2013 234
5 janv. 2011 à 11:30
Placez vous sur la cellule qui doit recevoir votre résultat.
Cliquez sur somme (le zigma) puis sur la première cellule
Enfoncez la touche CTRL en la maintenant et cliquez sur chaque cellule.
Validez par entrée
Bonne journée
-1
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 11:47
Pour ce qui est de trouver le nombre de "nombres" c'est bon, moi c'est la somme que je n'arrive pas à faire et ça m'énèrve !!
-1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
5 janv. 2011 à 11:52
Fallait le dire que t'étais super bon! alors continue de t'énerver...
proverbe chinois:"si tu est pressé commences par t'asseoir"
et apprend aussi à dire merci aux bénévoles qui essaient de t'aider
0
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 12:00
Désolés, merci pour ton aide.. Si je suis pressé c'est parce que je dois rendre un dossier ce soir et si je dois faire la somme manuellement j'aurais jamais terminé.
0
Hello
http://www.admexcel.com/fmath.htm
Julien
-1
regarde bien le paragraphe "La fonction =SOMME()"
Et essayes de faire leur exemple jusqu'à avoir leur résultat (31)
-1
Yul_23 Messages postés 121 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 5 janvier 2011
5 janv. 2011 à 12:14
La fonction somme ne fonctionne qu'avec des cellules contenant un seul nombre donc incompatible avec ma requête mais merci de ton aide quand même ;)
0