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 Sub

2) 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 = ActiveSheet

Si 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 Sub

Mais 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 :/

Rechercher des sujets similaires à "application code vba feuilles"