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.
Ensuite, dans un autre module, je fais appelle à ma sub
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
Je ne sais pas si j'ai bien déclaré ma feuille, normalement c'est un string si j'ai bien compris
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Public Sub Test() Call DeclarationPetitDejeuner Call GenererMatin(Feuil6) End sub
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![]()
Partager