Bonjour à tous,

J'ai crée une procédure adaptée à une feuille en particulier. Mais j'aimerais que la procédure se répète sur x feuilles.
Je m'explique: suite au remplissage d'un userform par l'utilisateur, une macro crée autant de feuilles que nécessaire.
Je dois donc adapter la macro qui marche pour une feuille à toutes les autres. Pour se faire, je souhaiterai rentrer en paramètre la feuille voulue et effectuer une boucle pour remplir toutes les feuilles. Malheureusement ça ne marche pas, je dois mal écrire le paramètre ou mal appeler ma sub par la suite.

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
Public Sub GenererMatin(Feuille As String)
 
    Dim Calorie As Double
    Dim compteur As Double 'Comparateur de calories
    Dim i As Integer
 
   [...] 
 
 Dim CellNomGeneral As Range, CellNom As Range, CellMasse As Range, CellCalorie As Range
    Set CellNomGeneral = Sheets(Feuille).Range("B5")
    Set CellNom = Sheets(Feuille).Range("D6")
   Set CellMasse = Sheets(Feuille).Range("E6")
   Set CellCalorie = Sheets(Feuille).Range("F6")
 
   With TabPetitDej(m, 7)
    CellNomGeneral.value = .Nom
   End With
 
    For i = 1 To 6
        Dim j As Integer
        j = i - 1
        With TabPetitDej(m, i)
           CellNom.Offset(j, 0).value = .Nom
            CellMasse.Offset(j, 0).value = Masse(i)
            CellCalorie.Offset(j, 0).value = .Calorie * Masse(i) / 100
        End With
    Next
 
End Sub
Ensuite, dans un autre module, je fais appelle à ma sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Public Sub Test()
Call DeclarationPetitDejeuner
Call GenererMatin(Feuil6)
End sub
Je ne sais pas si j'ai bien déclaré ma feuille, normalement c'est un string si j'ai bien compris
Mais ensuite, pour y faire appel, que dois je faire?
Call GenererMatin("Feuil6") ?
Call GenererMatin(Feuil6) ?
Admettons que Feuil6 soit le nom donné automatique par excel mais que la feuille en question a été renommée Toto, dois-je écrire:
Call GenererMatin("Toto") ?
Call GenererMatin(Toto) ?
Je ne comprends pas vraiment comment faire appel à ma procédure

Ce qui m'embête, c'est que je serai obligée d'appliquer une boucle pour remplir toutes mes feuilles, donc je ne vois pas comment faire autrement que ne pas spécifier la feuille lors du code, mais de l'entrer en paramètre. De plus, je ne renommerai pas mes feuilles, donc il me faut utiliser le nom donné par excel "Feuil1", "Feuil2" etc

Merci d'avance,
Bonne journée