Problème avec SOMMEPROD

  • Initiateur de la discussion Initiateur de la discussion patrick57
  • 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 !

P

patrick57

Guest
Bonjour,

J'ai un problème avec la fonction SOMMEPROD.

Je l'utilise pour calculer une cellule dans un tableau et elle fonctionne très bien:

=SOMMEPROD(([Analyse.xls]SAISIE!$B$8:$B$6000>=B3)
il s'agit de ne prendre ici que les cellules de la colonne B d'un autre tableau >= au 01/01/2006 (date qui figure en b3
*([Analyse.xls]SAISIE!$B$8:$B$6000<=D3)
ici =D4)[/b]
même explication que si dessus
*([Analyse.xls]SAISIE!$B$8:$B$6000<=F4)
idem
*([Analyse.xls]SAISIE!$D$8:$D$6000='C17')
je pense que c'est cette partie qui pose problème. Elle doit selectionner dans la colonne D d'un autre tableau toutes les cellules = 'C17' qui est du texte.
*([Analyse.xls]SAISIE!$G$8:$G$6000))


Je ne comprends pourquoi elle fonctionne dans le premier cas et pas dans le second. Il n'y a pas de message d'erreur elle me renvoie uniquement la somme 0.00

Merci de bien vouloir m'aider

Patrick
 
Bonjour,

Essaie comme ça :
à la place de * avant la plage à sommer
*([Analyse.xls]SAISIE!$D$8:$D$6000='C17')*([Analyse.xls]SAISIE!$G$8:$G$6000))
tu mets un point-virgule :
*([Analyse.xls]SAISIE!$D$8:$D$6000='C17');([Analyse.xls]SAISIE!$G$8:$G$6000))
 
Re,

Chez moi elle fonctionne.
Je n'ai fait que 'concaténer' les différentes parties de ton message par &,
j'ai enlevé [Analyse.xls],
j'ai validé et c'est tout.

En colonne G, si tu as du texte ou bien '' dans une cellule, ça renvoie #VALEUR!
c'est le pourquoi du point-virgule avant la plage à sommer.

Est-ce que C17 n'est pas précédé ou suivi d'un espace ?
Est-ce que C17 n'est pas déjà entouré de guillemets en colonne D ?
(là, je cherche la petite bête)
si oui, le C17 de la formule doit être entouré de triples guillemets
*(Saisie!$D$8:$D$6000='''C17''')
Toutes tes plages ont bien la même longueur ?

A part ça, je ne vois pas.
 
Merci Monique pour ton aide précieuse,

Je viens de m'appercevoir qu'il y avait un espace après le nom qui est indiqué dans certaines celliles de la colonne Saisie!$D$8:$D$6000.

Le problème c'est que j'ai + de 3000 lignes!!!

Est ce qu'il y a une méthode pour supprimer automatiquement tous les espaces qui pourraient se trouver avant ou après???

Merci beaucoup
 
Salut patrick57
bonjour Monique
cette procédure placée dans un module et executé alors que la feuille ou se trouve les données à traitées et la feuille active supprimera les espaces avant et après la valeur de la cellule


Sub suppEspace()
Dim L As Integer
Dim TabTemp As Variant
'on rempli un tableau des valeurs de la colonne D à partir de la ligne 8
TabTemp = Range('D8😀' & Range('D65536').End(xlUp).Row).Value
'on recopie dans la plage les données du tableau en suppriment les espaces éventuels
For L = 1 To UBound(TabTemp, 1)
Cells(7 + L, 4) = Trim(TabTemp(L, 1))
Next
End Sub
bonne fin de Journée
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
634
Réponses
20
Affichages
1 K
Retour