Réduction du code
Bonjour
y a t'il une possibilité de réduire le code ci-dessous :
With ActiveSheet.ListObjects("Tableau2")
'--- Comptage Nb/Horaire/Zone/pièces
.Range.AutoFilter Field:=4, Criteria1:="1" 'Type Usager
.Range.AutoFilter Field:=1, Criteria1:="Pièces" 'Type paiement
.Range.AutoFilter Field:=3, Criteria1:="Zone 1" 'Type Zone
nbHpZ1 = WorksheetFunction.Subtotal(3, .ListColumns(1).DataBodyRange)
MsgBox "Nombre de pièce Z1 Horaire = " & nbHpZ1
.Range.AutoFilter Field:=4, Criteria1:="1" 'Type Usager
.Range.AutoFilter Field:=1, Criteria1:="Pièces" 'Type paiement
.Range.AutoFilter Field:=3, Criteria1:="Zone 2" 'Type Zone
nbHpZ2 = WorksheetFunction.Subtotal(3, .ListColumns(1).DataBodyRange)
MsgBox "Nombre de pièce Z2 Horaire = " & nbHpZ2
.Range.AutoFilter Field:=4, Criteria1:="1" 'Type Usager
.Range.AutoFilter Field:=1, Criteria1:="Pièces" 'Type paiement
.Range.AutoFilter Field:=3, Criteria1:="Zone 3" 'Type Zone
nbHpZ3 = WorksheetFunction.Subtotal(3, .ListColumns(1).DataBodyRange)
MsgBox "Nombre de pièce Z3 Horaire = " & nbHpZ3
end with
Sachant que la ligne ou je sélectionne la Zone est la seule qui change à chaque fois
Bonjour Quattro, bonjour le forum,
Peut-être comme ça :
With ActiveSheet.ListObjects("Tableau2")
'--- Comptage Nb/Horaire/Zone/pièces
.Range.AutoFilter Field:=4, Criteria1:="1" 'Type Usager
.Range.AutoFilter Field:=1, Criteria1:="Pièces" 'Type paiement
.Range.AutoFilter Field:=3, Criteria1:="Zone 1" 'Type Zone
nbHpZ1 = WorksheetFunction.Subtotal(3, .ListColumns(1).DataBodyRange)
MsgBox "Nombre de pièce Z1 Horaire = " & nbHpZ1
.Range.AutoFilter Field:=3, Criteria1:="Zone 2" 'Type Zone
nbHpZ2 = WorksheetFunction.Subtotal(3, .ListColumns(1).DataBodyRange)
MsgBox "Nombre de pièce Z2 Horaire = " & nbHpZ2
.Range.AutoFilter Field:=3, Criteria1:="Zone 3" 'Type Zone
nbHpZ3 = WorksheetFunction.Subtotal(3, .ListColumns(1).DataBodyRange)
MsgBox "Nombre de pièce Z3 Horaire = " & nbHpZ3
End With
Merci
c'est bon
une autre question.
Je voudrais faire la SOMME de ma colonne B
With ActiveSheet.ListObjects("Tableau2")
.Range.AutoFilter Field:=4, Criteria1:="2" 'Type Usager
.Range.AutoFilter Field:=2, Criteria1:="20" 'Type Montant
.Range.AutoFilter Field:=1, Criteria1:="MPP" 'Type paiement
.Range.AutoFilter Field:=3, Criteria1:="Zone 1" 'Type Zone
end with
Ci-dessus, Field:=2, et correspond donc à ma col B.
Est ce que je peux insérer du code pour faire la somme de cette colonne ?
Ici la somme sera uniquement de 20€, mais il y des moments ou la somme pourra varié : 2€, 1,5€, 2,20€ etc...