Bonjour,

L'aide du site, comme Microsoft, dit "on peut" mais s'abstient de dire "Comment" à un endroit évident.

Mon code testé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Function changerFll(Fl As String) As String
    ' récupération de la feuille active
    changerFll = ActiveSheet.Name
    Worksheets(Fl).Activate
End Function 'changerFeuille(Fl As Sring) As Sheets
Réponse de vba sur worksheets(Fl).activate : erreur 1004


Fl : chaine de caractère obtenue par copie du label de la feuille à activer.

code pour controler ma fonction :

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
19
20
21
22
23
24
25
26
27
28
29
30
Sub Macro1()
'
' Macro1 Macro
'
    Dim titreBx As String, Ou As String, Fl As String
    Dim Msg As String, RC As String, msgBx As Integer
    RC = Chr(10)
    Ou = "B8"
    'Fl = "mixte 4"
    Fl = "Patton"
    titeBx = "lireCllFll(Fl, Ou)"
    Msg = lireCllFll(Fl, Ou)
 
    'msg = MsgBox(lireCll(Ou), vbOKOnly + vbInformation, titreBx)
End Sub
 
'   Lecture du contenu de la 1ère cellule de la zone Ou de la feuille Fl
'   1/  Est-il utile de changer de feuille active ?
'   2/  Avec la syntaxe flOu = Sheets(Fl).name&!"&Ou : échec de Range(flOu) ?
Function lireCllFll(Fl As String, Ou As String) As String
    ' essai du cas 2/
    '   Dim flOu As String, msg As Integer
    '   flOu = Sheets(Fl).Name & "!" & Ou
    '   lireCllFll = Range(Fl).Value
    '   msg = MsgBox(lireCellFl, vbOKOnly + vbInformation, flOu)
    ' essai cas 1
    Dim flInit As String
    fllinit = changerFll(Fl)
    lireCllFll = lireCll(Ou)
End Function 'lireCllFll(Ou As String) As String