Somme cellules non adjacentes contenant Div/0
Résolu/Fermé
A voir également:
- Somme cellules non adjacentes contenant Div/0
- Comment faire la somme de plusieurs cellules non consécutives sur excel - Guide
- Somme si couleur - Guide
- Verrouiller cellules excel - Guide
- Numéro de téléphone excel 0 - Guide
- Comment faire un 0 barré sur telephone ✓ - Forum Windows
9 réponses
Coucou,
Effectivement, j'ai passé mon après midi sur ce classeur à enlever les erreurs #DIV/0! comme tu me l'as dit.
Avant, je n'avais pas de 0 intempestifs, mais maintenant avec la formule si(esterreur(...), j'en ai quelques uns. j'irai voir dans un autre sujet pour les enlever.
J'ai collé le code et effectivement tout marche à la perfection. C'est génial, tu es un petit Einstein de l'informatique.
Vous m'avez donné une solution double : avec sommeplage si les erreurs ne peuvent être enlevés et simplement somme lorsqu'il n'y a plus d'erreur.
Merci beaucoup de votre gentilesse et du temps passé
Béné
Effectivement, j'ai passé mon après midi sur ce classeur à enlever les erreurs #DIV/0! comme tu me l'as dit.
Avant, je n'avais pas de 0 intempestifs, mais maintenant avec la formule si(esterreur(...), j'en ai quelques uns. j'irai voir dans un autre sujet pour les enlever.
J'ai collé le code et effectivement tout marche à la perfection. C'est génial, tu es un petit Einstein de l'informatique.
Vous m'avez donné une solution double : avec sommeplage si les erreurs ne peuvent être enlevés et simplement somme lorsqu'il n'y a plus d'erreur.
Merci beaucoup de votre gentilesse et du temps passé
Béné
leplot
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015
131
25 mars 2009 à 11:37
25 mars 2009 à 11:37
Bonjour,
La problème me paraissait simple mais les plages discontinues bloquent les fonctions classiques d'Excel.
Je te propose une fonction VBA à coller dans un module du classeur
La fonction à utiliser devient :
=SommePlage((E5;H5;K5;N5;Q5;T5;W5;Z5;AC5;AF5;AI5;AL5))
Attention à bien mettre la série de cellules entre parenthèses pour qu'elle passe comme un seul argument.
Mais si quelqu'un a une idée uniquement Excel, je suis intéressé.
A +
La problème me paraissait simple mais les plages discontinues bloquent les fonctions classiques d'Excel.
Je te propose une fonction VBA à coller dans un module du classeur
Function SommePlage(Plage As Range) Dim c SommePlage = 0 For Each c In Plage.Cells If Not IsError(c) And IsNumeric(c) Then SommePlage = SommePlage + c Next c End Function
La fonction à utiliser devient :
=SommePlage((E5;H5;K5;N5;Q5;T5;W5;Z5;AC5;AF5;AI5;AL5))
Attention à bien mettre la série de cellules entre parenthèses pour qu'elle passe comme un seul argument.
Mais si quelqu'un a une idée uniquement Excel, je suis intéressé.
A +
Néanmoins, j'ai juste oublié de dire un ptit truc : quand j'ouvre le classeur et qu'aucun montant n'est inséré, j'ai tout de même des nombres qui s'affichent dans la cellule où on peut trouver la formule sommeplage...
Mais merci tout de même, au moins mes tableaux ressemblent à quelque chose maintenant :)
Mais merci tout de même, au moins mes tableaux ressemblent à quelque chose maintenant :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dna.factory
Messages postés
25518
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
24 janvier 2025
1 613
25 mars 2009 à 11:12
25 mars 2009 à 11:12
= SOMME.SI
et dans la condition, tu mets valeur > 0, ou non nulle, ou différente de #DIV/0
sachant qu'il est préférable d'intervenir en amont en conditionnant ces cellules #div/0 pour que le calcul ne se fasse que quand il est possible, et afficher simplement 0 ou rien sinon
et dans la condition, tu mets valeur > 0, ou non nulle, ou différente de #DIV/0
sachant qu'il est préférable d'intervenir en amont en conditionnant ces cellules #div/0 pour que le calcul ne se fasse que quand il est possible, et afficher simplement 0 ou rien sinon
... sachant qu'il est préférable d'intervenir en amont en conditionnant ces cellules #div/0 pour que le calcul ne se fasse que quand il est possible, et afficher simplement 0 ou rien sinon
> J'ai tout essayé, et il est impossible de trouver une solution à #DIV/0. Le problème, c'est que j'ai 3 colonnes pour chaque mois, et je peux remplir une colonne au hasard, les résultats correspondant (% et montant/quantité) s'afficheront dans les 2 autres colonnes automatiquement. En fait, c'est un travail de simulation, et pour l'instant je ne sais pas quelle donnée (quelle colonne) sera simulée, dans le cas contraire, je pourrai supprimer la colonne en question et ainsi supprimer l'erreur #DIV/0.
= SOMME.SI et dans la condition, tu mets valeur > 0, ou non nulle, ou différente de #DIV/0
> Pour la formule somme.si, le problème est que ce n'est pas une plage mais des cellules non adjacentes, j'avais déjà essayé, mais j'ai pas réussi
Merci de ton aide
> J'ai tout essayé, et il est impossible de trouver une solution à #DIV/0. Le problème, c'est que j'ai 3 colonnes pour chaque mois, et je peux remplir une colonne au hasard, les résultats correspondant (% et montant/quantité) s'afficheront dans les 2 autres colonnes automatiquement. En fait, c'est un travail de simulation, et pour l'instant je ne sais pas quelle donnée (quelle colonne) sera simulée, dans le cas contraire, je pourrai supprimer la colonne en question et ainsi supprimer l'erreur #DIV/0.
= SOMME.SI et dans la condition, tu mets valeur > 0, ou non nulle, ou différente de #DIV/0
> Pour la formule somme.si, le problème est que ce n'est pas une plage mais des cellules non adjacentes, j'avais déjà essayé, mais j'ai pas réussi
Merci de ton aide
dna.factory
Messages postés
25518
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
24 janvier 2025
1 613
25 mars 2009 à 11:49
25 mars 2009 à 11:49
je ne comprends pas pourquoi tu ne peux pas supprimer le Div /0
pour chacun de tes calculs de division, il suffit de mettre =SI (diviseur <> "";calcul;0)
de cette manière, même si tu ne remplis pas le champ, la division ne se fait pas, et on affiche un 0 qui sera traité tranquillement dans le calcul
pour chacun de tes calculs de division, il suffit de mettre =SI (diviseur <> "";calcul;0)
de cette manière, même si tu ne remplis pas le champ, la division ne se fait pas, et on affiche un 0 qui sera traité tranquillement dans le calcul
Merci pour ton aide, néanmoins je n'y arrive toujours pas, je suppose que c'est dû au fait que je ne connaisse rien à VBA...
Je modifie donc ma formule somme en =SOMMEPLAGE((E5;H5;K5;N5;Q5;T5;W5;Z5;AC5;AF5;AI5;AL5)) et ça m'indique #Nom?
Pour insérer le code VBA, je dois cliquer sur l'onglet, visualiser le code et coller ce que tu m'as inscrit ?
Aurais-je sauté une étape ?
En tout cas, un grand merci de se casser la tête pour moi.
Néanmoins, beaucoup d'erreurs de ce type, ne devrait plus exister sous excel, est-ce le cas avec les nouvelles versions ?
Je modifie donc ma formule somme en =SOMMEPLAGE((E5;H5;K5;N5;Q5;T5;W5;Z5;AC5;AF5;AI5;AL5)) et ça m'indique #Nom?
Pour insérer le code VBA, je dois cliquer sur l'onglet, visualiser le code et coller ce que tu m'as inscrit ?
Aurais-je sauté une étape ?
En tout cas, un grand merci de se casser la tête pour moi.
Néanmoins, beaucoup d'erreurs de ce type, ne devrait plus exister sous excel, est-ce le cas avec les nouvelles versions ?
Je ne comprends pas pourquoi tu ne peux pas supprimer le Div /0
pour chacun de tes calculs de division, il suffit de mettre =SI (diviseur <> "";calcul;0)
de cette manière, même si tu ne remplis pas le champ, la division ne se fait pas, et on affiche un 0 qui sera traité tranquillement dans le calcul
> J'ai déjà fait ce que tu me dis de faire, néanmoins, les calculs des 3 colonnes se basent les uns sur les autres étant donné le fait que je veux, en modifiant une colonne, que la correspondance s'affiche dans les 2 autres...
Pour l'instant vu qu'aucune colonne n'a de montant, forcément avec cette "concaténation" des calculs, ça donne ce résultat
pour chacun de tes calculs de division, il suffit de mettre =SI (diviseur <> "";calcul;0)
de cette manière, même si tu ne remplis pas le champ, la division ne se fait pas, et on affiche un 0 qui sera traité tranquillement dans le calcul
> J'ai déjà fait ce que tu me dis de faire, néanmoins, les calculs des 3 colonnes se basent les uns sur les autres étant donné le fait que je veux, en modifiant une colonne, que la correspondance s'affiche dans les 2 autres...
Pour l'instant vu qu'aucune colonne n'a de montant, forcément avec cette "concaténation" des calculs, ça donne ce résultat
leplot
Messages postés
191
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
13 août 2015
131
25 mars 2009 à 12:48
25 mars 2009 à 12:48
Re,
Effectivement, je pense également que tu peux corriger le problème en amont.
Si en E5 tu as la formule =formulequelconque tu corriges en :
=si(esterreur(formulequelconque);"";formulequelconque)
(ou 0 à la place de "" selon ce que tu veux obtenir)
Par rapport à la fonction que je t'ai créée, le code doit être collé dans un module et non pas dans le code de la feuille (comme tu l'as fait). Dans Microsoft Visual Basic tu crées un nouveau module (Insertion\Module) et tu colloes le code.
Pour aller dans Visual Basic, tu peux faire comme précédemment (onglet/visualiser le code)
NB La fonction est alors utilisable dans tous les onglets du classeur quelque soit la plage que tu choisis, continue ou discontinue
Effectivement, je pense également que tu peux corriger le problème en amont.
Si en E5 tu as la formule =formulequelconque tu corriges en :
=si(esterreur(formulequelconque);"";formulequelconque)
(ou 0 à la place de "" selon ce que tu veux obtenir)
Par rapport à la fonction que je t'ai créée, le code doit être collé dans un module et non pas dans le code de la feuille (comme tu l'as fait). Dans Microsoft Visual Basic tu crées un nouveau module (Insertion\Module) et tu colloes le code.
Pour aller dans Visual Basic, tu peux faire comme précédemment (onglet/visualiser le code)
NB La fonction est alors utilisable dans tous les onglets du classeur quelque soit la plage que tu choisis, continue ou discontinue