Lancer procédure sur activation de feuilles

  • Initiateur de la discussion Initiateur de la discussion m@tix
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

m@tix

XLDnaute Occasionnel
Bonjour,

J'ai une centaine de feuilles graphiques dans un classeur Excel, et j'aimerais lancer une procédure à chaque fois qu'on va les activer, et en lancer une autre lorsqu'elles sont désactivées (ou quand une autre est activée à la place de la première en fait). Plutôt que de l'écrire directement dans chacune des feuilles, est-ce possible de faire une condition en utilisant Chart_Activate() ?

Merci d'avance.
 
Re : Lancer procédure sur activation de feuilles

Bonjour m@tix

Dans le module de code ThisWorkBook:

VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If TypeOf Sh Is Chart Then
        Macro1
    End If
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    If TypeOf Sh Is Chart Then
        Macro2"
    End If
End Sub

A+

[Edit]Bonjour Pierrot🙂
 
Dernière modification par un modérateur:
Re : Lancer procédure sur activation de feuilles

Bonjour M@tix, Hasco🙂

un peu dans le même esprit...
Code:
Option Explicit
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Type = 3 Then
    'ton code
End If
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Sh.Type = 3 Then
    'ton code
End If
End Sub

bonne journée
@+
 
Re : Lancer procédure sur activation de feuilles

Euh... Finalement ça ne marche pas si bien que ça, il y a un petit souci.

En mettant votre code, à l'ouverture du classeur, lorsque je sélectionne une première feuille, la procédure (mon "code" ou mes "macros" comme vous l'avez noté) ne se lance pas. Ca fonctionne uniquement à partir de la seconde feuille sélectionnée..

Je pense savoir d'où vient le problème, mais je ne sais pas s'il est résolvable. Sur chacune de mes feuilles graphiques j'ai placé un code débutant par Private Sub Chart_Activate(). En fait, ça plante parce que ce code là semble être exécuté avant le code que vous m'avez fait placer dans ThisWorkbook. Ca ne planterait pas s'il était exécuté après.. jouable ?
 
Dernière édition:
Re : Lancer procédure sur activation de feuilles

Bonjour,

Papou🙂
Pierrot🙂

@m@tix: tout dépend de ce que tu veux faire et ce que font tes macros. Il faut nous en dire plus pour comprendre exactement ton problème.

Soit tu veux les même macros pour toutes tes feuilles graphique et à ce moment tu gère tout dans ThisWorkbook, soit des macros individuelle à chaque graphique et tu gère dans Chart_Activate de chaque feuille graphique.

A+
 
Re : Lancer procédure sur activation de feuilles

Re,

Les macros pour chaque feuille sont assez proches, mais tout de même différentes, je ne peux donc pas gérer cela dans ThisWorkbook.
En fait, mes feuilles sont protégées par une procédure, et le code présent sur les dites feuilles nécessite de sortir cette protection. Bien entendu, je peux lancer ma procédure de "déprotection" dans chaque feuille, mais vu qu'il y en a une centaine, cela aurait été moins fastidieux si j'avais pu le gérer d'un coup dans ThisWorkbook... Pas possible apparemment ?

Paritec, de quelle condition tu parles ?
 
Re : Lancer procédure sur activation de feuilles

Re,

pour protéger toutes tes feuilles et autoriser l'exécution du code sans avoir à déprotéger, proteger les feuilles par le code en utilisant l'argument "userinterfaceonly", code ci-dessous à placer dans le module "thisworkbok" :
Code:
Option Explicit
Private Sub Workbook_Open()
Dim ws As Object
For Each ws In Sheets
    ws.Protect "toto", userinterfaceonly:=True
Next ws
End Sub

bon, perso jamais tester sur feuille graph et pas la matière sous le coude pour le faire...

bon après midi
@+
 
Re : Lancer procédure sur activation de feuilles

Excellent, tout fonctionne pour le mieux à présent ! Je ne connaissais pas cette propriété userinterfaceonly, très pratique du coup !

Encore une fois, merci beaucoup Pierrot ! 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
632
Retour