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

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...

Gégé-45550

XLDnaute Accro
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

  • Classeur1.xlsm
    25.7 KB · Affichages: 1

Simon 1234

XLDnaute Junior
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
 

Simon 1234

XLDnaute Junior
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
 

Gégé-45550

XLDnaute Accro
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

  • Classeur1.xlsm
    23.4 KB · Affichages: 2

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
315 097
Messages
2 116 186
Membres
112 679
dernier inscrit
Yupanki