Bonjour,

j'effectue les mêmes calculs dans différents onglets, j'utilise donc une fonction avec en paramètre le nom de l'onglet:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Function ImpactMarge(Feuille As String) as double
 
Dim WsSource As Worksheet
Dim Nbl As Integer
 
Call DateRec
 
Set WsSource = ThisWorkbook.Sheets(Feuille)
 
Nbl = WsSource.Range("A4").CurrentRegion.Rows.Count
 
With WsSource
        Set d = Nothing
        Set d = .Rows(4).Find("*(yc marge gestion, hors indexation) €", , xlValues, xlWhole)
        If Not d Is Nothing Then ImpactMarge = Application.Sum(Cells(5, d.Column).EntireColumn)
End With
MsgBox ImpactMarge
End Function
Je souhaiterais maintenant affecter les résultats de la fonction à des cellules d'une autre feuille Résultats, je crée la macro suivante que j'affecte à un bouton dans la feuille "Résultats" :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Public Sub Impact_Marge()
 
Dim WsCible As Worksheet
 
Set WsCible = ThisWorkbook.Sheets("Résultats"")
 
'WsCible.Range("C18").Value = ImpactMarge("Prévoyance Réseau")
'WsCible.Range("C17").Value = ImpactMarge("Santé Réseau")
 
End Sub
Mais les résultats ne sont corrects que lorsque la feuille active est la feuille qui est sélectionnée dans la fonction. Autrement dit, tant que je reste sur la feuille Résultats, les calculs sont tous faux

Comment pourrais je corriger cela ?

Merci d'avance pour votre aide