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 WithTout 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_PBizarrement, 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à