somme de cellules avec contenus différents

  • Initiateur de la discussion Initiateur de la discussion TINOU
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

TINOU

XLDnaute Nouveau
Bonjour le Forum,

Après de vaines recherches sur les différents fils, je ne m'en sort pas...

je m'explique: Comment obtenir la somme des nombres entiers contenus dans une colonne qui contient des cellules comportant du texte ou des dates ou des cellules vides ou des cellules avec des nombres décimaux.

Pour être plus clair (j'espère !), je vous joins un petit fichier explicatif.

Merci d'avance de l'aide que vous pourrez m'apporter
Tinou 😀
 

Pièces jointes

Re : somme de cellules avec contenus différents

Bonsoir,
On peut te dépanner comme suite, si tu nous donnes la liste des années que tu as sur les dates ce sera plus facile...

Excel2003,
Code:
=SOMME(SI(ESTNUM(A1:A17);SI((ENT(A1:A17)=A1:A17)*(ANNEE(A1:A17)<1990);A1:A17)))

Excel2007 et antérieur,
Code:
=SOMME(SIERREUR(SI((ENT(A1:A17)=A1:A17)*(ANNEE(A1:A17)<1990);A1:A17);))

@ valider par Ctrl+Maj+Entree
@ + +
 
Re : somme de cellules avec contenus différents

Bonsoir R@chid, DoubleZero, le Forum,

Tout d'abord merci à vous pour la rapidité de vos réponses,

R@chid , désolé je ne dois pas être doué mais je n'arrive pas à faire fonctionner ta formule peux être que je m'y prend mal?

Doublezero merci beaucoup mais les macros, je ne pourrais pas les installer, je ne suis pas administrateur

Si vous pouvez m'aider ...

Merci d'avance

Tinou.
 
Re : somme de cellules avec contenus différents

Bonjour à tous,

Une autre fonction SiEntierValeurSinonZero(xrg As Range) As Variant

Cette fonction prend une zone contigüe de cellules en entrée.
Elle retourne un tableau de même dimension dont les éléments sont égaux soit à zéro (si l'élément source n'est pas un entier) soit à l'entier lui-même (si l'élément source est un entier)

La formule pour trouver la somme devient: =SOMME(SiEntierValeurSinonZero(A1:A17))

Voir le fichier joint.

Code de la fonction:
VB:
Function SiEntierValeurSinonZero(xrg As Range) As Variant

' retourne un tableau identique au tableau en entrée
' dont chaque élément est égal à 0 si l'élément correspondant
' en entrée n'est pas un entier ou bien qui est est égal à l'entier
' si l'élément en entrée est un entier.

Dim Tablo, i As Long, j As Long, x

If xrg.Rows.Count = 1 Then
  ' une seule ligne en entrée
  ReDim Tablo(1 To xrg.Columns.Count)
  For j = 1 To xrg.Columns.Count
    x = xrg(1, j).Value: Tablo(j) = 0
    If Not IsEmpty(x) Then If IsNumeric(x) Then If (CLng(x) = CDbl(x)) Then Tablo(j) = x
  Next j
  SiEntierValeurSinonZero = Tablo
ElseIf xrg.Columns.Count = 1 Then
  ' une seule colonne en entrée
  ReDim Tablo(1 To xrg.Rows.Count)
  For i = 1 To xrg.Rows.Count
    x = xrg(i, 1).Value: Tablo(i) = 0
    If Not IsEmpty(x) Then If IsNumeric(x) Then If (CLng(x) = CDbl(x)) Then Tablo(i) = x
  Next i
  SiEntierValeurSinonZero = Application.Transpose(Tablo)
Else
  ' plus d'une ligne et plus d'une colonne en entrée
  ReDim Tablo(1 To xrg.Rows.Count, 1 To xrg.Columns.Count)
  For i = 1 To xrg.Rows.Count
    For j = 1 To xrg.Columns.Count
      x = xrg(i, j).Value: Tablo(i, j) = 0
      If Not IsEmpty(x) Then If IsNumeric(x) Then If (CLng(x) = CDbl(x)) Then Tablo(i, j) = x
    Next j
  Next i
  SiEntierValeurSinonZero = Tablo
End If
End Function
 

Pièces jointes

Dernière édition:
Re : somme de cellules avec contenus différents

Bonsoir à tous,

Par formule, et avec une colonne intermédiaire car cellule() n'accepte pas une validation matricielle :
- en B2:
=OU(GAUCHE(CELLULE("format";A1);1)="D";ESTTEXTE(A1))
à recopier vers le bas
- en A20:
=SOMME(SI(B1:B19;0;SI(MOD(A1:A19;1)>0;0;A1:A19)))
formule matricielle à valider avec Shift+Ctrl+Entrée.

eric
 

Pièces jointes

Re : somme de cellules avec contenus différents

Bonjour à tous,

Grillé sur le poteau par eriiiic que je salue 🙂

Le même principe (colonne auxilliaire) et utilisation de la fonction CELLULE() mais sans validation matricielle.

Voir fichier joint.

Edit: une heure étant la partie décimale d'un nombre représentant une date, on peut supprimer dans les formules de la colonne B le terme *(GAUCHE(CELLULE("format";A2);1)<>"H") (version v2.a)
 

Pièces jointes

Dernière édition:
Re : somme de cellules avec contenus différents

Bonsoir R@chid, DoubleZero, mapomme, eriiiic, le Forum,

Je tenais tout d'abord à vous remercier pour vos réponses rapides et complètes (peut être parfois trop pointues pour moi je l'avoue), un peu débordé ces temps ci, je vais me poser un peu pour essayer de comprendre les diverses solutions proposées.Franchement vous êtes trop fort, et ce forum est vraiment une référence !!. Je pense que j'aurais de nouveau besoins de vos lumières pour faire fonctionner mon tableau...

En vous remerciant pour votre aide ...
Cordialement.

TINOU.🙂
 
Re : somme de cellules avec contenus différents

Bonjour à tous,

Je reviens vers vous pour vous renouveler mes remerciements, j'ai finalement opté pour la solution de R@chid qui convient parfaitement à solutionner mon problème. J'aurai certainement besoins de vos conseils éclairés pour résoudre d'autres difficultés (pour moi!😀 bien sur), pour mes autres applications.

Encore merci !

Cordialement.

TINOU.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Macro de recherche
Réponses
20
Affichages
2 K
Retour