Somme cellules non adjacentes contenant Div/0
Résolu
jecker68
-
jecker68 -
jecker68 -
Bonjour,
J'ai déjà cherché dans le forum une réponse à mes questions, on s'en rapproche souvent, mais ça ne fonctionne pas...
Je dispose d'un classeur Excel avec 7 onglets. Ce classeur est actualisé mensuellement.
Dans certains onglets, j'ai réussi à éliminer les #DIV/0! mais ce n'est pas possible partout.
J'aimerai obtenir le total des mois déjà passés (ceux ci ont un montant) sans changer ma formule chaque mois. Ma formule est =SOMME(E5;H5;K5;N5;Q5;T5;W5;Z5;AC5;AF5;AI5;AL5). Les formules ne sont pas adjacentes (pas en une seule plage). Jusqu'à T5, j'ai un montant, après j'ai l'erreur #DIV/0!, que je n'arrive pas à éliminer.
Comment obtenir la somme jusqu'à T5 sans raccourcir ma formule somme et la changer chaque mois?
Pour simplifier, comment dire à Excel de faire la somme des mois contenant un montant et de laisser tomber les erreurs? Cette formule doit être figée dans le temps = éviter les manipulations mensuelles, mis à part l'ajout des montants mensuels.
Je ne connais rien à VBA, et j'ai ce travail à effectuer sur 4 onglets... :$
Par avance, je vous remercie
Béné
J'ai déjà cherché dans le forum une réponse à mes questions, on s'en rapproche souvent, mais ça ne fonctionne pas...
Je dispose d'un classeur Excel avec 7 onglets. Ce classeur est actualisé mensuellement.
Dans certains onglets, j'ai réussi à éliminer les #DIV/0! mais ce n'est pas possible partout.
J'aimerai obtenir le total des mois déjà passés (ceux ci ont un montant) sans changer ma formule chaque mois. Ma formule est =SOMME(E5;H5;K5;N5;Q5;T5;W5;Z5;AC5;AF5;AI5;AL5). Les formules ne sont pas adjacentes (pas en une seule plage). Jusqu'à T5, j'ai un montant, après j'ai l'erreur #DIV/0!, que je n'arrive pas à éliminer.
Comment obtenir la somme jusqu'à T5 sans raccourcir ma formule somme et la changer chaque mois?
Pour simplifier, comment dire à Excel de faire la somme des mois contenant un montant et de laisser tomber les erreurs? Cette formule doit être figée dans le temps = éviter les manipulations mensuelles, mis à part l'ajout des montants mensuels.
Je ne connais rien à VBA, et j'ai ce travail à effectuer sur 4 onglets... :$
Par avance, je vous remercie
Béné
A voir également:
- Somme cellules non adjacentes contenant Div/0
- Somme de plusieurs cellules excel - Guide
- Somme si couleur - Guide
- Verrouiller cellules excel - Guide
- Comment remettre son pc a 0 - Guide
- Somme en anglais excel - Guide
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é
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
= 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
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
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