Calcul spécifique sur excel 2003

Résolu
ameliabib Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
ameliabib Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
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.

10 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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   Statut Contributeur Dernière intervention   435
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   435
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Re,

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

eric
0
tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   435
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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   Statut Contributeur Dernière intervention   435
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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   Statut Membre Dernière intervention  
 
Merci beaucoup à tous. Ca marche.
0