Calcul spécifique sur excel 2003

Résolu/Fermé
ameliabib Messages postés 4 Date d'inscription mardi 5 janvier 2010 Statut Membre Dernière intervention 30 juin 2010 - 5 janv. 2010 à 17:10
ameliabib Messages postés 4 Date d'inscription mardi 5 janvier 2010 Statut Membre Dernière intervention 30 juin 2010 - 20 janv. 2010 à 14:43
Bonjour,

J'ai un petit souci sur Excel 2003 : j'ai besoin de calculer la somme des cellules d'une colonne A seulement si des dates figurent dans la colonne B.
Ex : A1 et A2 sont additionnés seulement si B1 et B2 comportent des dates, sinon ils ne sont pas comptabilisés.
Pouvez-vous m'aider ?
Merci d'avance.
Cordialement.
A voir également:

10 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
5 janv. 2010 à 17:48
Bonjour,

Malheureusement, je ne vois pas comment faire avec des formules - la fonction "cellule" ne recalcule pas si changement de format

ci dessous fonction dans laquelle col_valeurs est la colonne ou il y a les valeurs à additionner (colonneA)

Function somme_si_date(col_valeurs As Range)
Dim cellule As Range
For Each cellule In col_valeurs
    If IsDate(cellule.Offset(0, 1)) Then
        somme_si_date = somme_si_date + cellule
    End If
Next
End Function


pour installer
copier cette macro
dans XL alt+F11
insertion -module
coller

il faut que les macros soient autorisées (macro-sécurité-moyen sur XL<2007)
0
tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435
5 janv. 2010 à 18:14
Bonjour
Quelles autres valeurs que des dates sont possibles dans la colonne B : des nombres, des mots, des cases vides etc...? Si tu as seulement des cases vides ou des dates, on pourrait aussi faire l'inverse par exemple : faire la somme sauf si les cellules en B sont vides (en fait le problème vient du test "est une date").
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
5 janv. 2010 à 21:37
Bonjour,

Moi non plus je ne vois pas par formule sauf... si tu précises ce que tu entends par sont additionnés seulement si B1 et B2 comportent des dates
Que peuvent-elles contenir d'autre ? Si c'est vide ou du texte (donc jamais numérique) c'est faisable

EDIT: désolé je n'avais pas tout lu... J'ai répété ce qui disait tompol :-s
Comme le faisait remarquer michel, cellule() ne se met pas a jour sur un changement de format.
Mais elle est recalculée sur n'importe quel autre calcul, comme si elle était volatile.

Si la contrainte d'attendre une saisie n'importe ou dans la feuille, voire même un simple double-clic dans une cellule pour avoir la mise à jour est supportable, c'est faisable par formule.
(par contre elle a l'air fâchée en matricielle et il faudra une colonne supplémentaire)
0
ameliabib Messages postés 4 Date d'inscription mardi 5 janvier 2010 Statut Membre Dernière intervention 30 juin 2010
6 janv. 2010 à 14:51
Bonjour,
Merci pour vos réponses, je vous précise le cas : dans ma colonne A, j'ai uniquement des montant en euros, dans ma colonne B j'ai des dates ou rien du tout. Je veux que les montants de la colonne A soient additionnés seulement si dans la colonne B j'ai indiqué une date pour préciser que la commande est soldée. Ex : le montant de A1 doit être comptabilisé seulement si B1 contient une date.
Je vous précise seulement que mon niveau Excel est au ras des paquerettes...
Pour exemple, je veux bien essayer la macro proposée par michel_m : je suis allée dans Visual Basic Editor mais je ne sais pas comment libeller col_valeurs correctement.
Merci encore de bien vouloir aider une super-novice.
Cordialement.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435
6 janv. 2010 à 15:00
Re,
on devrait s'en sortir avec une formule ;)
=SOMMEPROD((A1:A6)*((ESTVIDE(B1:B6)*1)=0)) fais la somme des nombres en colonne A pour lesquels la colonne B est non vide.....
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
6 janv. 2010 à 16:12
Re,

ou bien par somme.si() :
=SOMME.SI(B1:B14;">0";A1:A14)

eric
0
tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435
6 janv. 2010 à 16:18
Salut eric,
j'y avais pensé aussi mais ds ce cas, attention aux formats (une date en format texte fausserait le résultat)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
6 janv. 2010 à 16:53
Bonjour

d'accord mais si je marque "toto" dans la colonne B l'addition se fait....que ce soit avec >0 ou non( estvide(....

l'astuce possible pour utiliser ces formules serait alors d'utiliser une validation de données sur la colonne B en autorisant une date >= 1/1/1900
la solution somme.si serait la plus simple, à mon avis
0
tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435
6 janv. 2010 à 17:07
oui, jsuis assez d'accord avec michel_m j'avais proposé un sommeprod car "dans ma colonne B j'ai des dates ou rien du tout." du coup la seule faille restante était une date en texte....
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
6 janv. 2010 à 17:30
Bah, on va supposer que s'il y a qcq chose de saisi c'est une date valide ;-)
0
ameliabib Messages postés 4 Date d'inscription mardi 5 janvier 2010 Statut Membre Dernière intervention 30 juin 2010
20 janv. 2010 à 14:43
Merci beaucoup à tous. Ca marche.
0