Création nouvelle feuille avec code

Résolu/Fermé
dan03 Messages postés 31 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 16 décembre 2021 - 15 oct. 2020 à 13:42
dan03 Messages postés 31 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 16 décembre 2021 - 15 oct. 2020 à 17:38
Bonjour,
J'ai un classeur contenant une feuille nommée "Données"
A l'ouverture du classeur, je voudrais créer une nouvelle feuille nommée " Essai"
J'ai écris le code suivant, dans le Module1:

Sub Auto_Open()
Dim Feuille As Worksheet
'Cherche si la feuille "Essai" existe
For Each Feuille In worksheets
If UCase(Feuille.Name) = UCase("Essai") Then Flag = 1
Next Feuille
Worksheets("Données").Activate
If Flag = 0 Then ' Créer la feuille
sheets.Add(after:=sheets("Données")).Name = "TriDate"
Worksheets("Données").Activate
End If
End Sub

Cela fonctionne parfaitement, mais maintenant, en cliquant sur l'onglet "Essai", je voudrais excécuter une procédure
Par exemple:
Private Sub Worksheet_Activate()
MsgBox "Vous venez d'activer la feuille " & ActiveSheet.Name
End Sub

Pour que cela fonctionne, il faut que cette procédure soit dans le code de la feuille "Essai"

Comment la mettre automatiquement à la création de cette feuille ?
ou Comment l'activer, si le code est dans le Module1 ?
Merci de votre aide Cordialement

Configuration: Windows / Edge 86.0.622.38
A voir également:

2 réponses

via55 Messages postés 14496 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 22 novembre 2024 2 735
15 oct. 2020 à 14:20
Bonjour


Pour appliquer une procédure à l'activation de n'importe quelle feuille du classeur doit être mise dans ThisWorkbook
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox "Vous venez d'activer la feuille " & Sh.Name
End Sub


ou avec une condition :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Essai" Then MsgBox "Vous venez d'activer la feuille " & Sh.Name
End Sub


ou dans this Workbook
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
nomf = Sh.Name
message
End Sub

et dans un module avec déclaration préalable de la variable publique
Public nomf As String
Sub message()
MsgBox "Vous venez d'activer la feuille " & nomf
End Sub


Cdlmt
Via
0
dan03 Messages postés 31 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 16 décembre 2021 2
15 oct. 2020 à 17:38
Merci pour ton explication simple et précise
Cordialement
0