Microsoft 365 Une feuille en ouvre une autre et déclenche une macro automatiquement

  • Initiateur de la discussion Initiateur de la discussion Simon 1234
  • 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 !

Simon 1234

XLDnaute Junior
Bonjour
Sur une feuille A j'ai un bouton pour passer à la feuille B.
VB:
Sheets("FeuilleB").Activate

La feuille B s'ouvre bien mais je voudrais qu'un bout de code s'exécute automatiquement et ça ne fonctionne pas
Code:
Private Sub Worksheet_Activate()' code dans la feuille B'
MsgBox "hey"
End Sub
A la main ça marche mais pas avec le bouton. J'ai essayé avec Activate et Select, pareil.
Il doit y avoir une subtilité, laquelle?

Merci à tous par avance
 
Solution
Merci de ta contribution.
Je vais être plus précis, j'ai voulu prendre un raccourci et du coup, on ne parle pas vraiment de la même chose.
Plutot que des boutons, j'utilise les cellules comme boutons. Je fais un ecran tactile...
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[D2].Select
Dim ScreenString As String

Application.EnableEvents = False ' Pour éviter de boucler dans l'événement


    Select Case True
     
    Case Target.Count > 1

    Case Not Intersect(Target, Range("D8:F10, D11:E11")) Is Nothing 'n#
        [A6].FormulaR1C1 = [A6].Value & Target
        [D2].Select
       
    Case Not Intersect(Target, Range("G8:G10")) Is Nothing 'unit
        [G6].FormulaR1C1 = Target
        [D2].Select
   
    Case...
Bonjour
Sur une feuille A j'ai un bouton pour passer à la feuille B.
VB:
Sheets("FeuilleB").Activate

La feuille B s'ouvre bien mais je voudrais qu'un bout de code s'exécute automatiquement et ça ne fonctionne pas
Code:
Private Sub Worksheet_Activate()' code dans la feuille B'
MsgBox "hey"
End Sub
A la main ça marche mais pas avec le bouton. J'ai essayé avec Activate et Select, pareil.
Il doit y avoir une subtilité, laquelle?

Merci à tous par avance
Bonjour,
comme ça ?
Cordialement,
 

Pièces jointes

Merci de ta contribution.
Je vais être plus précis, j'ai voulu prendre un raccourci et du coup, on ne parle pas vraiment de la même chose.
Plutot que des boutons, j'utilise les cellules comme boutons. Je fais un ecran tactile...
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[D2].Select
Dim ScreenString As String

Application.EnableEvents = False ' Pour éviter de boucler dans l'événement


    Select Case True
      
    Case Target.Count > 1

    Case Not Intersect(Target, Range("D8:F10, D11:E11")) Is Nothing 'n#
        [A6].FormulaR1C1 = [A6].Value & Target
        [D2].Select
        
    Case Not Intersect(Target, Range("G8:G10")) Is Nothing 'unit
        [G6].FormulaR1C1 = Target
        [D2].Select
    
    Case Target.Address = [F11].Address 'del
        [A6].ClearContents
        [D2].ClearContents
        [D2].Select
        
    Case Target.Address = [G11].Address 'ok
        ThisWorkbook.Worksheets("F-EMB").Activate
        
    End Select
    
    
Application.EnableEvents = True
End Sub
 
La vraie question c'est donc: mais pourquoi quand j'ouvre ma feuille le code s'exécute et quand c'est une macro qui l'ouvre, le code ne s'exécute pas?
Code:
Option Explicit

Private Sub Worksheet_Activate()
Application.Wait (Now + TimeValue("00:00:02"))
Sheets("ACCUEIL").[B4].ClearContents
Sheets("ACCUEIL").Select
End Sub
 
Merci de ta contribution.
Je vais être plus précis, j'ai voulu prendre un raccourci et du coup, on ne parle pas vraiment de la même chose.
Plutot que des boutons, j'utilise les cellules comme boutons. Je fais un ecran tactile...
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[D2].Select
Dim ScreenString As String

Application.EnableEvents = False ' Pour éviter de boucler dans l'événement


    Select Case True
     
    Case Target.Count > 1

    Case Not Intersect(Target, Range("D8:F10, D11:E11")) Is Nothing 'n#
        [A6].FormulaR1C1 = [A6].Value & Target
        [D2].Select
       
    Case Not Intersect(Target, Range("G8:G10")) Is Nothing 'unit
        [G6].FormulaR1C1 = Target
        [D2].Select
   
    Case Target.Address = [F11].Address 'del
        [A6].ClearContents
        [D2].ClearContents
        [D2].Select
       
    Case Target.Address = [G11].Address 'ok
        ThisWorkbook.Worksheets("F-EMB").Activate
       
    End Select
   
   
Application.EnableEvents = True
End Sub
PJ à tester
 

Pièces jointes

- 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
4
Affichages
148
Retour