XL 2019 Vba utilisation Sumifs

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

Ldhmn

XLDnaute Nouveau
Bonjour,

Je débute en vba je voudrais calculer de maniere rapide des somme si ens.
J ai lu qu'en vba c est beaucoup plus rapide mais je sèche car je souhaite faire la somme de Chiffre d affaire total par client selon des critères qui changent à chaque ligne sachant que j ai des dates differentes sur chaque ligne. Les critères de la somme si ens:
Une colonne avec le type de ville, et une autre avec le commercial.
La somme de CA client doit-etre redondante sur plusieurs lignes
Colonne B=ville
Colonne C=commercial
Colonne E=CA
Colonne F= somme si ens
J ai essayé avec la fonction For each cell ("F3:F4000")
Puis sumifs(range ("E3:E4000"), range ("B3:B4000"), range("B3"), range("C3:C4000"), range ("C3"))
Par quoi remplacer B3 pour que sur la ligne du dessous la valeur prise en compte soit celle de la cellule B4 et ainsi de suite.
Merci de votre aide
 
Bonjour Ldhmm,
Je ne pense pas que le VBA sera plus rapide qu'une formule.
Ceci étant dit, vous pouvez essayer :
VB:
Sub Ldhmm()
With Sheets("Feuil1")
    For L = 3 To 4000
        .Cells(L, "F") = Application.SumIfs(.Range("E3:E4000"), _
                        .Range("B3:B4000"), Cells(L, "B"), .Range("C3:C4000"), Cells(L, "C"))
    Next L
End With
End Sub
=
 
En utilisant .Range("A65500").End(xlUp).Row qui trouve la dernière ligne utilisée et d'utiliser cette variable pour définir les plages de travail.

VB:
Sub Ldhmm()
With Sheets("Feuil1")
    DerLig = .Range("E65500").End(xlUp).Row ' Modifier colonne si necessaire'
    For L = 3 To DerLig
        .Cells(L, "F") = Application.SumIfs(.Range("E3:E" & DerLig), _
                        .Range("B3:B" & DerLig), Cells(L, "B"), .Range("C3:C" & DerLig), Cells(L, "C"))
    Next L
End With
End Sub
 
Bonjour Ldhmm
Bonjour le Fil ,le Forum
Pour vous saluer et donner mon approche
Il faut déterminer la dernière ligne non vide de la colonne représentative
Pour Exemple ici : Colonne "C"
VB:
With Sheets("Feuil1")
Derlgn= .Cells(.Rows.count,3).End(xlup).Row
    For L = 3 To Derlgn
        .Cells(L, "F") = Application.SumIfs(.Range("E3:E" &Derlgn), _
                        .Range("B3:B"&Derlgn), Cells(L, "B"), .Range("C3:C" & Derlgn), Cells(L, "C"))
    Next L
End With
En espérant fait avancer le chimilimblick lol
Édit oupss trop rapide lol
(De mon téléphone)
Jean marie
 
Dernière édition:
Bonjour Ldhmm
Bonjour le Fil ,le Forum
Pour vous saluer et donner mon approche
Il faut déterminer la dernière ligne non vide de la colonne représentative
Pour Exemple ici : Colonne "C"
VB:
With Sheets("Feuil1")
Derlgn= .Cells(.Rows.count,3).End(xlup).Row
    For L = 3 To Derlgn
        .Cells(L, "F") = Application.SumIfs(.Range("E3:E" &Derlgn), _
                        .Range("B3:B"&Derlgn), Cells(L, "B"), .Range("C3:C" & Derlgn), Cells(L, "C"))
    Next L
End With
En espérant fait avancer le chimilimblick lol
Édit oupss trop rapide lol
(De mon téléphone)
Jean marie
 
- 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

Réponses
5
Affichages
420
  • Question Question
Microsoft 365 macro vba sumifs
Réponses
5
Affichages
597
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
503
Retour