Resultat meme avec des 0

Résolu/Fermé
Abd3l0u Messages postés 21 Date d'inscription jeudi 27 février 2014 Statut Membre Dernière intervention 26 mars 2014 - 10 mars 2014 à 09:14
Abd3l0u Messages postés 21 Date d'inscription jeudi 27 février 2014 Statut Membre Dernière intervention 26 mars 2014 - 10 mars 2014 à 09:38
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

ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 10/03/2014 à 09:29
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
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
10 mars 2014 à 09:32
Et ça donne 0 si toutes les cellules sont à 0
0
trebmal14 Messages postés 798 Date d'inscription dimanche 16 septembre 2007 Statut Membre Dernière intervention 7 novembre 2023 243
10 mars 2014 à 09:37
bravo :)
0
Abd3l0u Messages postés 21 Date d'inscription jeudi 27 février 2014 Statut Membre Dernière intervention 26 mars 2014 1
10 mars 2014 à 09:38
Nickel c'est ce qu'il me fallait Merci beaucoup pour votre aide.

Bonne journee
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 10/03/2014 à 09:48
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
Abd3l0u Messages postés 21 Date d'inscription jeudi 27 février 2014 Statut Membre Dernière intervention 26 mars 2014 1
10 mars 2014 à 09:25
Merci pour ta reponse.
j'aimerai savoir si c'est possible de le faire sans macro juste avec excel

Cordialement
0
trebmal14 Messages postés 798 Date d'inscription dimanche 16 septembre 2007 Statut Membre Dernière intervention 7 novembre 2023 243
10 mars 2014 à 09:24
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
trebmal14 Messages postés 798 Date d'inscription dimanche 16 septembre 2007 Statut Membre Dernière intervention 7 novembre 2023 243
10 mars 2014 à 09:26
(seul problème avec cette formule : si toutes tes valeures sont à 0, elle te donnera un 1 :/)
0
Abd3l0u Messages postés 21 Date d'inscription jeudi 27 février 2014 Statut Membre Dernière intervention 26 mars 2014 1
10 mars 2014 à 09:31
C'est ce que j'allais te dire tu m'as devancer car j'avais deja essaye mais merci quand meme
0