Aide pour addition complexe Excel
Résolu
Yul_23
Messages postés
121
Date d'inscription
Statut
Membre
Dernière intervention
-
Yul_23 Messages postés 121 Date d'inscription Statut Membre Dernière intervention -
Yul_23 Messages postés 121 Date d'inscription Statut Membre Dernière intervention -
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.
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:
- Aide pour addition complexe Excel
- Addition excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
18 réponses
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
bonne suite
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
Yul_23
Messages postés
121
Date d'inscription
Statut
Membre
Dernière intervention
Merci, c'est très instructif mais je préfèrerais ne pas passer par VBA si c'est possible biensur...
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 !!
https://www.cjoint.com/?0bflTYTwdZW
Si se n'est pas encore clair, n'hésitez pas !!
re,
te donne le nombre de "nombres" en B2
à adapter si b2 est le résultat d'une formule donnant 0 ou ""
Michel
=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
J'ai mis à jour le lien de mon fichier excel qui inclue maintenant une cellule vide, les 2 formule fonctionnent.
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 ??
Bonjour,
Le fichier joint présente deux ébauches de solutions:
https://www.cjoint.com/?0bfmJSm5WcC
Faut-il poursuivre?
Le fichier joint présente deux ébauches de solutions:
https://www.cjoint.com/?0bfmJSm5WcC
Faut-il poursuivre?
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 !
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 !
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.
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.
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
=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
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)
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)
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)
bonne suite
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
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
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
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 ;)
(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 ;)
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
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
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 !!