Création nouvelle feuille avec code [Résolu]

Signaler
Messages postés
31
Date d'inscription
dimanche 20 mai 2007
Statut
Membre
Dernière intervention
22 octobre 2020
-
Messages postés
31
Date d'inscription
dimanche 20 mai 2007
Statut
Membre
Dernière intervention
22 octobre 2020
-
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

2 réponses

Messages postés
12793
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 octobre 2020
2 050
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
Messages postés
31
Date d'inscription
dimanche 20 mai 2007
Statut
Membre
Dernière intervention
22 octobre 2020

Merci pour ton explication simple et précise
Cordialement