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

VBA:Somme plage de cellule avec condition

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 !

Provence Vintage

XLDnaute Occasionnel
Bonjour,

Je cherche le bon code VBA qui me permette d'additionner toutes les lignes d'une colonne comprenant la valeur "X"

Qui a une idée!?

Mon code ne fonctionne pas!:

#Private Sub UserForm_Initialize()

Me.Height = Application.Height: Me.Width = Application.Width


With Sheets("bdd vendeurs") 'prend en compte l'onglet "Data"
For Each cel In .Range("P4😛" & .Range("P65536").End(xlUp).Row) 'boucle sur toute les cellules éditée de la colonne AL
If cel.Value = "X" Then
Label6.Caption = Application.Sum.Range("P4😛65536")
End If 'fin de la condition
Next 'prochaine cellule de la boucle
End With '


End Sub#

Merci et bonne journée
 
Re : VBA:Somme plage de cellule avec condition

Tu peux le faire sans VBA : créé une colonne que tu pourra masquer avec comme formule :
Colonne C : colonne avec ta valeur "X

Code:
=SI(C6=X;X;0)

Reste plus qu'a additionner toute la colonne masquée.

Sinon, tu peux télécharger Morefunc (Ce lien n'existe plus), il y a une fonction SOMMESI, qui te fait la somme d'une colonne par exemple avec une condition.

Si tu as absolument besoin de le faire en VBA, je laisse les autres te conseiller 😀
 
Re : VBA:Somme plage de cellule avec condition

Bonjour,

Comme vous avez indiqué :

'boucle sur toute les cellules éditée de la colonne AL

Code:
With Sheets("bdd vendeurs")
Label6.Caption = Application.SumIf(.Range("[COLOR="red"]AL[/COLOR]4:[COLOR="red"]AL[/COLOR]" & .Range("P65536").End(xlUp).Row), "X", .Range("P4:P65536"))
End With

Edit : plus simple je pense :

Code:
Label6.Caption = Application.SumIf(.Range("[COLOR="red"]AL[/COLOR]4:[COLOR="red"]AL[/COLOR]65536"), "X", .Range("P4:P65536"))

Voire même :

Code:
Label6.Caption = Application.SumIf(.Columns("[COLOR="red"]AL[/COLOR]"), "X", .Columns("P"))

A+
 
Dernière édition:
Re : VBA:Somme plage de cellule avec condition

Re,

Si je comprends bien Provence Vintage, ça s'appelle COMPTER les "X" 🙄

Alors s'ils sont bien colonne AL :

Code:
Label6.Caption = Application.CountIf(Sheets("bdd vendeurs").Columns("AL"), "X")

Bloc With inutile of course.

A+
 
Re : VBA:Somme plage de cellule avec condition

Job, le Fil,

Bonjour,
Job merci pour tes explications!
Comment sans faire le "Chadoc" y rajouter une condition de ce type:

#With Sheets("bdd acheteurs") 'prend en compte l'onglet "bdd acheteur"
For Each cel In .Range("B4:B" & .Range("B65536").End(xlUp).Row) 'boucle sur toute les cellules éditée de la colonne G
On Error GoTo suite 'gestion des erreurs (si la cellule n'est pas convertible en date, passe à la cellule suivante via l'étiquette "suite")

If CDate(cel.Value) >= Date - 7 Then #

Soit: pour toutes les dates de la semaine passée trouvées, calculer le nombre de X correspondant en colonne P!?

J'ai essayé mais ....
Merci
 
Re : VBA:Somme plage de cellule avec condition

Bonjour,

Pas besoin de contrôle d'erreur a priori.

Voir cette macro qui COMPTE les fois où les 3 conditions sont VRAI :

Code:
Sub Compte()
Dim cel As Range, n As Byte
For Each cel In Sheets("bdd acheteurs").Range("B4:B" & Sheets("bdd acheteurs").Range("B65536").End(xlUp).Row)
If [COLOR="Red"]cel >= Date - 7 And cel < Date And cel.Offset(, 14) = "X"[/COLOR] Then n = n + 1
Next
MsgBox n
End Sub

Fichier joint, pour visualiser (et pour le fun) j'y ai mis 2 MFC.

A+
 

Pièces jointes

Dernière édition:
- 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 affichage userform
Réponses
4
Affichages
465
Réponses
3
Affichages
870
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…