[Résolu]Macro évènementielle appliquer à plusieurs feuilles

sebm1976

XLDnaute Nouveau
Bonjour à toutes et tous,

Je souhaite intégrer dans un classeur Excel, une macro évènementielle qui lorsqu'on clique sur une cellule d'une plage définie appelle un Userform (Bouton d'option). A ce jour, j'ai une liste déroulante qui est de plus en plus garnie et de moins en moins lisible. C'est pourquoi je veux m'orienter vers cette solution.

Cette macro serait dans un planning annuel, et dans 12 onglets (1 par mois).

Je voulais savoir si il était possible de créer une macro évènementielle pour qu'elle s'applique à un ensemble de feuilles définies, ou bien si il n'y a pas d'autre choix que de placer le code dans chaque feuille.

Je pose cette question surtout pour ma culture personnelle et car je n'ai pas trouver (ou mal poser mes conditions de recherches) de documents à ce sujet. Sinon le copier/coller n'est pas gênant.

Par avance merci pour vos éventuelles réponses.
 
Dernière édition:
G

Guest

Guest
Re : Macro évènementielle appliquer à plusieurs feuilles

Bonjour,

voir le module de code de ThisWorkBook par exemple la procédure
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

End Sub





Où le paramètre Sh est l'objet Worksheet concerné par l'évènement.

A+
 

Victor21

XLDnaute Barbatruc
Re : Macro évènementielle appliquer à plusieurs feuilles

Bonjour, sebm1976.

Alt+F11 pour ouvrir VBA
Clic sur ThisWorkbook dans la fenêtre VBAProject
Choisir "Workbook" dans la liste déroulante de gauche, puis cliquez sur la liste déroulante de droite pour voir les différentes procédures événementielles à votre disposition.

Sans aucune précision, sur ce que doit faire le code, ni exemple joint de votre part, difficile de vous en dire plus :)

Edit : Bonsoir, HASCO ;)
 
Dernière édition:

Si...

XLDnaute Barbatruc
Re : Macro évènementielle appliquer à plusieurs feuilles

salut

étant un peu plus bavard que Victor21 ;), après ses premières indications, la macro pourrait se présenter ainsi :
Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal R As Range)
  'adapter le nom des onglets à exclure ou supprimer la ligne ci-dessous
  If Sh.Name = "Accueil" Or Sh.Name = "Bilan" Then Exit Sub
  'adapter la plage source
  If Intersect(R, [B2:K24]) Is Nothing Then Exit Sub
  'adapter le nom du formulaire
  UserForm1.Show
End Sub
 

Discussions similaires

Réponses
5
Affichages
132

Statistiques des forums

Discussions
312 204
Messages
2 086 198
Membres
103 155
dernier inscrit
lombrik