Additionner les chiffres d'une même cellule

Ah c'est effectivement bizarre !

Regarde l'image pour voir ce que ça donne chez moi ! Ça doit être le même problème qu'avec le code qu'a fait gmb, ça ne marche pas chez moi... :/

capture d ecran 2018 05 11 a 19 15 19

RE,

Une nouvelle proposition.

Cdlt.

3donnees-v1.xlsm (20.90 Ko)
Option Explicit

Public Function fnNewLine() As String
Dim ret As String
#If Win32 Or Win64 Then
    ret = Chr(10)
#ElseIf Mac Then
    ret = vbNewLine
#End If
    fnNewLine = ret
End Function

Function fnMultiplyValuesInCell(cell As Range)
Dim tblValues, ret As String, m As Double, i As Long
    ret = fnNewLine
    tblValues = Split(cell, ret)
    m = 1
    For i = 0 To UBound(tblValues)
        m = m * CDbl(tblValues(i))
    Next i
    fnMultiplyValuesInCell = m
End Function

Function fnAverageValuesInCell(cell As Range)
Dim tblValues, ret As String, m As Double, n As Long, i As Long
    ret = fnNewLine
    tblValues = Split(cell, Chr$(10))
    n = UBound(tblValues)
    For i = 0 To n
        m = m + Evaluate(tblValues(i))
    Next i
    fnAverageValuesInCell = m / (n + 1)
End Function

@SimplEsprit

Le fichier que tu as joint dans ton message de 18:08 est "Données.xlsx" ; or un fichier .xlsx ne peut pas contenir de code VBA (donc pas de macros) ! c'est pour cette raison que j'ai converti ton fichier en .xlsm : mon fichier "Données.xlsm" de mon post de 18:50 ; donc 1ère chose : vérifie si le fichier que tu utilises actuellement est bien un fichier .xlsm !

Ensuite, tu as Excel pour Macintosh, qui est moins puissant que la version PC ; j'utilise cette version PC, et peut-être que ta version Macintosh ne connaît pas la fonction Evaluate() ? j'ai dû l'utiliser à cause de tes données en cellule F5 : ce sont tes 3 fractions : 8/10 ; 6/10 ; 6/10 ! as-tu vraiment besoin de mettre des fractions ? tu peux mettre plus simplement : 0,8 ; 0,6 ; 0,6


Jean-Eric connaît bien les Macintosh, et j'crois bien qu'il t'a trouvé la bonne solution !

regarde son message de 19:38 : https://forum.excel-pratique.com/viewtopic.php?p=649370#p649370

Dans le code VBA de Jean-Eric, pour la 2ème fonction :

tu dois remplacer tblValues = Split(cell, Chr$(10))

par tblValues = Split(cell, ret)

ainsi, c'est idem que pour la 1ère fonction au-dessus.

dhany

Jean-Eric, dhany, je vous remercie beaucoup pour votre patience et votre gentillesse ! Grâce à vos efforts combiné, on y est presque !

Le code pour l'addition marche correctement, et j'ai rentré le code que Jean-Eric m'a dernièrement envoyé : il marche niquel pour la multiplication, mais ne marche malheureusement pas pour la division ! Ça me met #DIV/0! et ce peu importe les chiffres affichés ! J'ai essayé de remplacer ce que tu m'as dis de remplacer dans le code de la deuxième fonction, dhany, mais le problème est toujours le même :/

L'erreur #DIV/0! se produit quand on fait une division par zéro : c'est un calcul impossible, et même sur une simple calculatrice, tu auras un message d'erreur : « Error » (écrit avec les segments des chiffres LCD).

Si tu veux éviter cette erreur, tu dois mettre un test : si le diviseur est différent de zéro, alors faire la division ; autre possibilité : utiliser la fonction SIERREUR() ... si elle est dans Excel pour Macintosh.

dhany

Justement, c'est pour ça que j'ai marqué "peu importe les chiffres affichés", il n'y en a aucun qui divise par 0... Je comprends pas :/

Je mets ici mon code VBA (celui du fichier de mon message de 18:50 ; y'a aucun changement) :

Option Explicit

Function Multiplie(cell As Range)
  Dim Tbl, Résultat!, i As Byte
  Tbl = Split(cell, Chr$(10)): Résultat = 1
  For i = 0 To UBound(Tbl)
    Résultat = Résultat * Val(Replace$(Tbl(i), ",", "."))
  Next i
  Multiplie = Résultat
End Function

Function MoyNbs(cell As Range)
  Dim Tbl, Total!, n As Byte, i As Byte
  Tbl = Split(cell, Chr$(10)): n = UBound(Tbl): Total = 0
  For i = 0 To n
    Total = Total + Evaluate("=" & Replace$(Tbl(i), ",", "."))
  Next i
  MoyNbs = Total / (n + 1)
End Function

dans ce code VBA, y'a une seule division, à la fin de la 2ème fonction : MoyNbs = Total / (n + 1)

dans le code VBA de Jean-Eric aussi, c'est pareil : fnAverageValuesInCell = m / (n + 1)

note bien que dans les 2 cas, même si n vaut 0, on divise par (n + 1), donc par (0 + 1), donc par 1 :

y'a donc pas de division par zéro, alors j'comprends pas pourquoi tu as ce message !

là, je bloque ! j'peux pas t'aider davantage, alors j'te laisse voir la suite avec Jean-Eric :

il aura peut-être une idée ? bonne chance pour la suite, et bonne soirée !


À tout hasard, essaye de nouveau mon code VBA, mais en remplaçant les deux Chr$(10) par : Chr$(13)

(j'crois qu'c'est le code de retour ligne sur Macintosh = le ret du code VBA de Jean-Eric)

dhany

Bonsoir,

C'est tout simplement parce qu'on ne peut pas additionner abc.

Dans la cellule E7, il ya cette formule [ =AdditionDans1Cellule(D7) ] qui additionne ce qu'il y dans la cellule D7

Si dans ton fichier tu veux faire une additionne verticale des valeurs 4.6 14.6 et 1 , il suffit juste d'utiliser la somme (=SOMME(E4:E6) ) ou mettre (=E4+E5+E6) pour obtenir le résultat.

Bonne soirée

C'est gentil dhany de bien vouloir m'aider En fait c'est le fichier de gmb où je vois marqué #VALEUR! à la place des résultats, pas sur le mien ^^ Sur le mien il n'y a rien puisque je n'ai pas encore de formule pour faire le calcul ! Alors je ne sais pas si j'ai bien compris, est-ce donc le fichier de gmb que j'ai ouvert que tu veux que j'envoie ?

BORS on en est plus là depuis un moment, là le problème est au niveau de la moyenne x)

Bonsoir BORS,

Ce que tu as écrit est à propos du message d'erreur #VALEUR! ; j'ai déjà donné la réponse que tu as indiqué dans mon message de 18:12 : https://forum.excel-pratique.com/viewtopic.php?p=649332#p649332

Ensuite, on a parlé d'un autre message d'erreur #DIV/0! ; lire à partir de ce lien : https://forum.excel-pratique.com/viewtopic.php?p=649383#p649383

Je cite texto le demandeur : « il marche niquel pour la multiplication, mais ne marche malheureusement pas pour la division ! Ça me met #DIV/0! et ce peu importe les chiffres affichés ! »

dhany

@dhany @SimplEsprit

Désolé, en fait j'ai ouvert le topique et j'ai reçu un appel, du coup je l'ai pas actualisé avant de répondre

ok, c'est pas grave, c'est des choses qui arrivent ! donc moralité de la fable : ne pas oublier la touche F5 pour actualiser la page web, même après un appel téléphonique (ou toute autre interruption) !

dhany

Merci dhany et BORS en tout cas Jean-Eric ne doit pas être connecté malheureusement, zut

Bonjour,

Excel Mac ?

La fonction Evaluate n'est pas disponible.

J'ai donc modifié en conséquence. A tester par tes soins !...

J'évite de m'approcher de mon iMac : Je suis allergique aux pommes…

Cdlt.

11donnees-v2.xlsm (22.33 Ko)
Option Explicit

Public Function fnNewLine() As String
Dim ret As String

#If Win32 Or Win64 Then
    ret = Chr(10)
#ElseIf Mac Then
    ret = vbNewLine
#End If
    fnNewLine = ret

End Function

Function fnMultiplyValuesInCell(txt As String)
Dim tblValues
Dim ret As String
Dim I As Long
Dim m As Double

    fnMultiplyValuesInCell = CVErr(xlErrValue)

    ret = fnNewLine
    tblValues = Split(txt, ret)
    m = 1
    For I = 0 To UBound(tblValues)
        m = m * CDbl(tblValues(I))
    Next I

    fnMultiplyValuesInCell = m

End Function

Function fnAverageValuesInCell(txt As String)
Dim tblValues, tblValues2
Dim ret As String
Dim I As Long, n As Long
Dim m As Double, x As Double

    fnAverageValuesInCell = CVErr(xlErrValue)

    ret = fnNewLine
    tblValues = Split(txt, ret)
    n = UBound(tblValues)
    For I = 0 To n
        tblValues2 = Split(tblValues(I), "/")
        x = tblValues2(0) / tblValues2(1)
        m = m + x
    Next I

    fnAverageValuesInCell = m / (n + 1)

End Function

Hello Jean-Eric

Merci pour la réponse Je viens de tester, la fonction Multiplication marche toujours à merveille, mais malheureusement, toujours le même problème avec la Moyenne, ça me met #DIV/0! Pourtant je ne vise rien avec 0 !

Je suis effectivement sous Mac avec Excel 2011 :p

Bonjour,

Jean-Eric a écrit :

Excel Mac ? La fonction Evaluate n'est pas disponible.

quand j'le disais, qu'Excel pour Macintosh est moins puissant que la version PC !

https://forum.excel-pratique.com/viewtopic.php?p=649372#p649372 (2ème paragraphe)


SimplEsprit a écrit :

même problème avec la Moyenne, ça me met #DIV/0! Pourtant je ne vise rien avec 0 !

même avec ton Macintosh, tu divises rien par zéro non plus !

dhany

Re,

Testé sous Excel 2016 Mac et les 2 fonctions sont opérationnelles.

Travailles tu sur le fichier joint ou un autre fichier ?

Cdlt.

Effectivement, en copiant/collant le code directement de ton tableau ça a marché, au final

Merci beaucoup d'avoir pris le temps de m'aider, c'est très sympathique de ta part Et merci à dhany aussi

Re,

Même pas un petit j'aime, ingrat !...

Bon weekend.

@Jean-Eric : comme y'a que son contour qui est dessiné, il est bien trop discret et la plupart le voient pas !

si en plus ils ont cliqué sur la coche V pour passer le sujet en résolu, ça arrive qu'ils y pensent encore moins !

@SimplEsprit : pssst ! regarde le coin inférieur droit du message de Jean-Eric !

j'ai fait une chose que tu peux faire, toi aussi ! et il l'a bien mérité !

dhany

Rechercher des sujets similaires à "additionner chiffres meme"