Resultat meme avec des 0

Résolu
Bonjour a tous,

Je travail sur un fichier en combinant Vba et Excel. Dans une plage de cellule excel j'aimerai mettre le resultat d'une multiplication de plusieurs cellules dont le resultat provient d'une macros.
j'aimerai avoir le resultat meme si une des cellules contient un 0.

exemple : 2x2x0=0 j'aimerai que sa m'affiche 4

J'espere que c'est assez clair. Merci par avance pour votre aide.

PS : desole pour les fautes et accent, je suis avec un clavier anglais.

3 réponses

  1. Essaies

    =PRODUIT(SI(A2:B3<>0;A2:B3))
    Formule matricielle à valider avec Ctrl+Maj+Entrée (elle se mettra alors automatiquement entre accolades)

    Cdlmnt
    1
    1. Et ça donne 0 si toutes les cellules sont à 0
      0
    2. bravo :)
      0
    3. Nickel c'est ce qu'il me fallait Merci beaucoup pour votre aide.

      Bonne journee
      0
  2. Bonjour

    Je ne sais pas si j'ai bien compris ton pb

    Public Function ProdSansZero(plage As Range)
    Dim c As Range, p, ok As Boolean
    p = 1
    ok = False
    For Each c In plage
      If c.Value <> 0 Then p = p * c.Value: ok = True
    Next c
    If ok Then
      ProdSansZero = p
    Else
      ProdSansZero = 0
    End If
    End Function


    Cdlmnt
    0
    1. Merci pour ta reponse.
      j'aimerai savoir si c'est possible de le faire sans macro juste avec excel

      Cordialement
      0
  3. Bonjour. Tu peux utiliser une fonction SI pour chaque cellule qui appliquera ou non la multiplication si différent de zéro. (car si tu multiplie un chiffre par zéro, excel te donnera zéro quoi qu'il arrive (logique)

    Mon idée : le test logique est : Si la céllule est suppérieure à zéro, si vrai : [valeur de la cellule] ; si faux : 1 (je multipli le tout par 1 pour ne pas changer la veleur)

    Ex : Les données sont dans les céllules de A1 à A10.

    =SI(A1>0;A1;1)*SI(A2>0;A2;1)*SI(A3>0;A3;1)*...*SI(An>0;An;1)
    0
    1. (seul problème avec cette formule : si toutes tes valeures sont à 0, elle te donnera un 1 :/)
      0
    2. C'est ce que j'allais te dire tu m'as devancer car j'avais deja essaye mais merci quand meme
      0