résultat de filtre dans usf

flaneur

XLDnaute Junior
Bonsoir,

Je souhaiterai savoir s’il est possible d’ avoir un total lors d’un choix
D’un filtre.
Dans mon tableau si je choisi une date, une VLE ou autre je voudrais connaître
Le total de la durée (en colonne C) de suite dans un USF qui s’activerait dés
Le filtre sélectionné ( usf avec avec un bouton fermeture)
Et cela pour tout les mois de l’année (un mois par feuille)

merci de bien vouloir m'aider.
 

Pièces jointes

  • Suivi l1.zip
    8 KB · Affichages: 19

Cousinhub

XLDnaute Barbatruc
Re : résultat de filtre dans usf

Bonsoir, dans le fichier joint, je t'ai rajouté une macro provoquée par l'ovale jaune.
J'avais réussi à intercepter l'évènement Filtre automatique par l'évènement Private Sub Workbook_SheetCalculate(ByVal Sh As Object), mais après fermeture du fichier puis réouverture l'évènement ne fonctionne plus :(.
Le code pour la macro :

Sub nb_heures()
If Evaluate("SUM($B$5:$B$51)") <> Evaluate("Subtotal(9,$B$5:$B$51)") Then
z = Evaluate("=TEXT(" & Application.Substitute(Evaluate("Subtotal(9,$B$5:$B$51)"), ",", ".") & ",""[h]:mm"")")
MsgBox z
End If
End Sub

la variable z sur une seule ligne, variable que tu peux récupérer pour utilisation ultérieure
 

Pièces jointes

  • Suivi l11.zip
    12.5 KB · Affichages: 14

Cousinhub

XLDnaute Barbatruc
Re : résultat de filtre dans usf

RE-,
OK, je sais pourquoi.......:eek:
Pour pouvoir intercepter le filtre, tu mets dans la cellule O1 de chaque feuille cette formule : =SOUS.TOTAL(9;B5:B51)
Tu mets la police de la cellule en blanc pour ne pas la voir apparaître, et ainsi, à chaque filtre, la procédure va se déclencher.
fichier modifié (NB, j'ai laissé la formule visible dans la cellule O1, pour que tu puisses la voir)
 

Pièces jointes

  • Suivi l11V2.zip
    13.5 KB · Affichages: 31

Cousinhub

XLDnaute Barbatruc
Re : résultat de filtre dans usf

Bonsoir,

Merci pour ta réponse,
C'est bien ce que je voulais, mais le résultat est faux.

Effectivement :eek:

J'avais pris en référence la colonne B, or, il fallait la colonne C

Donc dans le code :

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
If Evaluate("SUM($B$5:$B$51)") <> Evaluate("Subtotal(9,$B$5:$B$51)") Then
z = Evaluate("=TEXT(" & Application.Substitute(Evaluate("Subtotal(9,$B$5:$B$51)"), ",", ".") & ",""[h]:mm"")")
MsgBox z
End If
End Sub

En réflechissant un tout petit peu, tu aurais pu voir que la zone à tester ((9,$B$5:$B$51) pouvait facilement être remplacée par :
(9,$C$5:$C$51)

Donc le code final :

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
If Evaluate("SUM($C$5:$C$51)") <> Evaluate("Subtotal(9,$C$5:$C$51)") Then
z = Evaluate("=TEXT(" & Application.Substitute(Evaluate("Subtotal(9,$C$5:$C$51)"), ",", ".") & ",""[h]:mm"")")
MsgBox z
End If
End Sub
 

flaneur

XLDnaute Junior
Re : résultat de filtre dans usf

Merci pour ta réponse, c'est nickel.

Désolé pour la reflexion, mais je suis surbooké et très très mauvais en VBA.
j'avoue t' avoir laisser faire mon boulot sans me pencher réellement sur le
problème pensant ne pas avoir les capacités et le temps suffisant.
ne m'en veux pas trop, moi je te remercie beaucoup d' avoir bien voulu me
répondre.
 

Discussions similaires

Statistiques des forums

Discussions
312 429
Messages
2 088 348
Membres
103 822
dernier inscrit
kader55