Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

pour les pros des formules excel

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

J

jp

Guest
Bonjour à tous,



Je vous explique mon petit problème,

Voila j’aimerai avoir une formule Excel qui me calcule en une seule fois La somme des maximums entre plusieurs plages….. Je m’explique



A B

limit 93
1 90
2 90
3 87
4 84
limit 100
9 57
10 88
11 40
limit 98
14 97
15 45
limit 110


Voila j’aimerai dans la colonne B avec la somme des maximums entre 2 « limit ».

Exemple ici il faudrait faire 90(le max dans la première plage) + 88 + 97 = 275.

Voila, au secours, je pense qu’il faudrait faire un truc du genre : =Somme.si(max(A :A ; « <>limit » ;B :B).

Je sais pas si on peut concaténer 2 fonctions.

Mais bon ça ne marche pas mais c’est l’idée.

Merci d’avance.



Jp
 
Salut jp,

Je crois que je ne serai le seul à avoir difficile de comprendre !

Ne pourrais-tu pas mettre ton exemple en pièce jointe, avec le résultat que tu voudrais obtenir (avec des petites couleurs sur les cellules auxquelles tu te réfères) ?

Ândré.
 
Bonjour

Colle le code dans un module, puis mets cette formule dans la cellule B17
=SommedesLimits(A3:A15)

Voici le code
Public Function SommedesLimits(vPlgLimit As Range) As Long
Dim vCell As Range
Dim vMax As Long
Dim Val As Long
SommedesLimits = 0

For Each vCell In vPlgLimit
If vCell = "limit" Then
SommedesLimits = SommedesLimits + Val
vMax = vCell.Offset(0, 1)
Val = 0
Else
Val = IIf((vCell.Offset(0, 1) < vMax) And ((vCell.Offset(0, 1) > Val)), vCell.Offset(0, 1), Val)
End If
Next vCell

End Function

@+Jean-Marie

PS Didier, il y a une erreur dans le fichier à la cellule B8 il faut écrire Limit.
 
Bonjour

Dans le fichier ci-joint, la version VBA et une version en formules,. Je ne pense pas qu'une diminution des colonnes intermédiaires soit possible. Mais je continue...

Bon dimanche

@+Jean-Marie
 

Pièces jointes

Bonjour

Ci-joint une modification du code pour gérer le cas où la fin du tableau ne se termine pas par un "Limit"
Voici le code
Public Function SommedesLimits(vPlgLimit As Range) As Long
Dim vCell As Range
Dim vMax As Long
Dim Val As Long
SommedesLimits = 0

For Each vCell In vPlgLimit
If vCell = "limit" Then
SommedesLimits = SommedesLimits + Val
vMax = vCell.Offset(0, 1)
Val = 0
Else
Val = IIf((vCell.Offset(0, 1) < vMax) And ((vCell.Offset(0, 1) > Val)), vCell.Offset(0, 1), Val)
End If
Next vCell
SommedesLimits = SommedesLimits + Val

End Function

bonne fin de soirée

@+Jean-Marie
 
merci jean marie.
j'ai testé c'est oki.

mais lorsque par exemple j'ai que des limites à 1 et dans les intervalles des 0 et des 1, avec la formule ca marche mais pas avec le code vba.
il calcule que cela fait 0.
faudrait-il modifier quelque chose dans le code pour qu'il puisse compter quand c'est des 1?
 
- 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

  • Question Question
Réponses
7
Affichages
1 K
  • Question Question
Réponses
3
Affichages
990
Réponses
2
Affichages
908
Réponses
9
Affichages
2 K
  • Question Question
XL 2013 Aide VBA
Réponses
4
Affichages
1 K
  • Question Question
Réponses
3
Affichages
1 K
Réponses
2
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…