Application d'un code VBA sur plusieurs feuilles
Bonjour,
J'aimerai savoir si il y a une méthode particulière pour appliquer des modules VBA sur plusieurs feuilles.
Sur mon fichier ci-joint j'ai créé un code VBA pour la mise à jour de ma feuille "X". et maintenant j'aimerai appliquer le même code à ma feuille "Y". Est ce que je dois modifier mon code ou est ce que je dois recréer un code? En sachant que le code créé est déjà assez complexe et relié à d'autres macros
En espérant avoir été assez clair dans mes explications.
Merci d'avance pour votre aide.
Fa.
Bonjour,
Il faut :
1) Mettre ton code d'appel de la procédure dans ThisWorkbook
en modifiant légèrement le code pour tester sur quelle feuille on se trouve
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name <> "X" Or Sh.Name <> "Y" Then Exit Sub
If Target.Address = "$D$6" Then 'définition de la target = le mois'
MajCP
End If
End Sub2) Dans ta procédure appelée, il ne faut pas nommer la feuille, mais utiliser ActiveSheet
Remplacer
Set fcp = Sheets("X") 'attribution de la variable'par
Set fcp = ActiveSheet 'attribution de la variable'A+
Merci BrnuM45, les modifications permettent d'appliquer le code aux feuilles "X" et "Y".
J'ai juste un soucis quand je change le mois, la mise à jour des données ne se fait plus.
Peux-tu m'aider?
Par exemple entre le mois d'avril et le mois de mai => les modifications n'apparaissent pas
Merci
Bonne journée,
Fa.
Re,
Peux-tu être plus explicite !?
Qu'est-ce qui devrait se passer et qui ne fonctionne pas ?
par exemple pour le moi de mai mes demandes de congés apparaissent sur le planning par contre quand je change de mois (par exemple le mois d'avril), j'ai toujours les demandes de congés du mois de mai qui sont visibles sur mon planning et pas celles du mois d'avril.
Les demandes de congés sont dans l'onglet "Request"
Normalement avec la macro, quand on change de mois sur le planning de l'onglet "X" ou "Y" avec la liste déroulante, les demandes de congés doivent se mettre à jour sur le planning et actuellement cela ne fonctionne plus :/
As tu besoin de plus de détails?
Merci pour ton aide
Fa.
Re,
Lorsque tu modifies un mois dans ta feuille, cela lance la macro "Majcp"
Dans cette macro, je n'ai rien modifié à part le fait que ça gère la feuille sélectionnée et non plus seulement la "X"
Donc si ça ne fonctionne plus, c'est de part ton code utilisé
Essaye de remettre
Set fcp = Sheets("X")au lieu de
Set fcp = ActiveSheetSi cela refonctionne, c'est que nous n'avons pas la même notion de ce qui fonctionne ou pas
Et là, je ne pourrais rien faire pour toi
Edit, le seul endroit ou cela peut poser problème, c'est ici
Sub general() 'general Macro'
Sheets("Request").Select
Sheets("report_VBA").Visible = True
Sheets("report_VBA").Select
Sheets("report_VBA_bis").Visible = True
Sheets("report_VBA_bis").Select
Call Module7.selectioncp 'appel macro module 7'
Call Feuil9.Separer_annees 'appel macro feuille 9'
Sheets("report_VBA_bis").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("report_VBA").Select
ActiveWindow.SelectedSheets.Visible = False
' ICI => Sheets("X").Select
Call Module4.MajCP 'appel macro mise à jour'
Application.Calculation = xlAutomatic
End SubMais ce module n'est appelé nul part
merci pour ton aide
Je pense que c'est dans mon code... et je n'ai toujours pas trouvé de solution pour que ça fonctionne :/