Problème d'affectation de soustotal par macro

Bonjour,

J'ai un problème que je n'arrive pas à résoudre !! J'explique, je fais plusieurs filtres par macro et au bout de chaque filtre, je récupère le total de la colonne dont le libellé est "Nombre" seulement sur le filtre donc je fais un sous total ! J'ai créé une fonction pour ne pas avoir à réécrire plusieurs fois la même macro !

Public Function Calcul_Nombre(Optional Critere1 As String, Optional Date1 As String, Optional Critere2 As String) As Integer

Dim WsSource As Worksheet
Dim ListeTitre()
Dim ListeParam()
Dim Mt As Integer
Dim Nbl, St As Integer

Call DateRec

Set WsSource = ThisWorkbook.Worksheets("tarifé " & Year(Date))
Nbl = WsSource.Range("A1").CurrentRegion.Rows.Count
WsSource.AutoFilterMode = False

ListeTitre = Array("Risque", "Activite", Date1)
ListeParam = Array(Critere1, Array("AN", "AP"))
' on boucle sur chaque colonne cherchée ' et on filtre sur son paramètre dédié

'fait le filtre sur l'onglet WsSource
With WsSource
    For i = LBound(ListeTitre) To UBound(ListeTitre)
        Set c = Nothing
        Set c = .Rows(1).Find(ListeTitre(i), , xlValues, xlWhole)

        If Not c Is Nothing Then
            If i <= UBound(ListeParam) Then
                .Range("A1").AutoFilter c.Column, ListeParam(i), xlFilterValues
            Else
                .Range("A1").AutoFilter c.Column, DateD, xlAnd, DateF
            End If
        End If
    Next i

      Set d = Nothing
      Set d = .Rows(1).Find("Nombre", , xlValues, xlWhole)
'fais le sous total sur la colonne Nombre
      If Not d Is Nothing Then Calcul_Nombre = Application.WorksheetFunction.Subtotal(9, Range(Cells(2, d.Column), Cells(Nbl, d.Column)))

End With

Tout se passe bien jusqu'à ce que je veux affecter le résultat de la fonction à une cellule d'un autre onglet comme ça :

Sub appelCalcul()

Dim WsCible1, WsSource1 As Worksheet
Dim Ne_P, Ne_S, Ns_S, Ns_P, Nbl, St As Integer

Set WsCible1 = ThisWorkbook.Worksheets("tdb")
Set WsSource1 = ThisWorkbook.Worksheets("tarifé " & Year(Date))

Application.ScreenUpdating = False
'
'
Ne_S = Calcul_Nombre("SANTE", "Date d'arrivée de l'étude")
WsCible1.Range("C14").Value = Ne_S

Ne_P = Calcul_Nombre("PREVOYANCE", "Date d'arrivée de l'étude")
WsCible1.Range("C8").Value = Ne_P

Bizarrement, l'affectation se fait normalement lorsque je lance la macro depuis la feuille où se fait la filtre mais plus du tout lorsque je la lance d'une autre feuille, alors que je précise bien dans mes macros les onglets à utiliser donc je suis

Je vous remercie d'avance pour votre aide

Et un petit up par là

Rechercher des sujets similaires à "probleme affectation soustotal macro"