Evénement onglet Excel VBA

Fermé
NLX_hydra Messages postés 2 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 septembre 2015 - 8 sept. 2015 à 18:04
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 8 sept. 2015 à 18:56
Bonjour,

J'ai crée une macro qui, entre autres, crée un nouvel onglet dans un classeur.
J'aimerais que cette même macro modifie les événements de ce nouvel onglet.

Concrètement, je voudrais que la macro écrive ça dans la nouvelle feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("$c$2")) Is Nothing Then
Nom_onglet
End If
End Sub
Private Sub WorkSheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

With Target
If .Column = 1 Then .Value = Date: Cancel = True
End With
With Target
If .Column = 2 Then .Value = Time: Cancel = True
End With

End Sub


Comment faire ??

Merci
A voir également:

1 réponse

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
8 sept. 2015 à 18:56
Bonjour,

d'abord lire cela:

https://silkyroad.developpez.com/VBA/VisualBasicEditor/#LIV-A

Voici le code:

Sub creer_macro()
'http://silkyroad.developpez.com/VBA/VisualBasicEditor/#LIV-A
Dim Code$, NextLine&
Sheets.Add.Move After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "mafeuille"
ActiveSheet.Select
  ' Comment ajouter le code.
    Code = "Private Sub Worksheet_Change(ByVal Target As Range)" & vbCrLf
    Code = Code & "If Not Application.Intersect(Target, Range(""C2"")) Is Nothing Then" & vbCrLf
    Code = Code & "Nom_onglet" & vbCrLf
    Code = Code & "End If" & vbCrLf
    Code = Code & "End Sub" & vbCrLf
    Code = Code & "Private Sub WorkSheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)" & vbCrLf
    Code = Code & "With Target" & vbCrLf
    Code = Code & "If .Column = 1 Then .Value = Date: Cancel = True" & vbCrLf
    Code = Code & "End With" & vbCrLf
    Code = Code & "With Target" & vbCrLf
    Code = Code & "If .Column = 2 Then .Value = Time: Cancel = True" & vbCrLf
    Code = Code & " End With" & vbCrLf
    Code = Code & "End Sub"
'   Ecriture du code dans le module de la feuille (fs)
With ActiveWorkbook.VBProject.VBComponents("Feuil12").CodeModule 'mettre le code name de la feuille et non pas "mafeuille"
       NextLine = .CountOfLines + 1
      .InsertLines NextLine, Code
End With
End Sub


Voir à gauche dans les feuilles le code name de la feuille qui va être ajoutée.
par exemple si tu as 3 feuilles le code name sera Feuil4
tu corrigera le code en conséquence à la place de Feuil12
0