XL 2016 Ecrire du code dans une feuille VBA

StanSigma

XLDnaute Junior
Bonjour, j'ai besoin de votre aide concernant un projet, je souhaite que des lors qu'une nouvelle feuille est créée, cela crée un bouton dessus qui supprime la feuille.
Ceci m'est utile lorsque je double clic sur les données d'un TCD qui crée une nouvelle feuille mais je souhaite qui cela crée un bouton dans le meme temps pour pouvoir quitter cette page et la supprimer.
Voici le code qui se trouve dans this workbook :
VB:
Private Sub Workbook_NewSheet(ByVal Sh As Object)

Dim NouvelleFeuille As Worksheet, NouveauBouton As OLEObject
Dim Code$, NextLine&


'Cet exemple consiste à ajouter une nouvelle feuille, un bouton
'de commande sur cette feuille et le code de l'événement Click
'du bouton.

'   Ajoute une Nouvelle feuille
    Set NouvelleFeuille = ActiveSheet

For i = 1 To 5
    NouvelleFeuille.Rows(i).Insert
Next
'   Ajoute un bouton de Commande
        Set NouveauBouton = NouvelleFeuille.OLEObjects.Add("Forms.CommandButton.1")

    With NouveauBouton
        .Left = 50
        .Top = 30
        .Width = 100
        .Height = 30
        .Object.Caption = "Supprimer feuille"
    End With
    
'   Comment ajouter le code se rapportant au bouton...
    Code = "Sub CommandButton1_Click()" & vbCrLf
    Code = Code & "On Error Resume Next" & vbCrLf
    Code = Code & "Application.DisplayAlerts = False" & vbCrLf
    Code = Code & "ActiveSheet.Delete" & vbCrLf
    Code = Code & "Sheets(1).Select" & vbCrLf
    Code = Code & "Application.DisplayAlerts = True" & vbCrLf
    Code = Code & "End Sub"
    
MsgBox (Code)

'   Ecriture du code dans le module de la feuille (fs)
    With ThisWorkbook.VBProject.VBComponents(NouvelleFeuille.CodeName).CodeModule
        NextLine = .countoflines + 1
        .InsertLines NextLine, Code
    End With
    
End Sub

Je bute sur la dernière partie, elle sert à coller le code dans l'objet vba de la nouvelle feuille mais cela ne fonctionne pas.. :
Code:
'   Ecriture du code dans le module de la feuille (fs)

    With ThisWorkbook.VBProject.VBComponents(NouvelleFeuille.CodeName).CodeModule

        NextLine = .countoflines + 1

        .InsertLines NextLine, Code

    End With

    

End Sub

Quelqu'un peut-il m'aider ?
 

Pièces jointes

  • Analyse entrepôt - NoName V2.xlsm
    263.7 KB · Affichages: 7

danielco

XLDnaute Accro
Bonjour,

Clique sur Fichier, Options, Centre de gestion de la confidentialité, Paramètres du Centre de gestion de la confidentialité, paramètres des macros. Vérifie que "Accès approuvé au modèle d'objet du projet VBA est bien coché.
Quelle est l'erreur ? Quelle est la ligne en erreur ?

Cordialement.

Daniel
 

patricktoulon

XLDnaute Barbatruc
bonjour
l'art et la manière d'utiliser un tractopelle 20 tonnes pour planter des piquets de clôture

fait moi plaisir ;);)
vire moi tout ton code y compris ton code de création de code

et met simplement ceci dans le module thisworkbook

VB:
Option Explicit
Private Sub Workbook_NewSheet(ByVal Sh As Object)
    With ActiveSheet.Buttons
        .Add(50, 30, 100, 30).Select
        .OnAction = "ThisWorkbook.deletersheet"
        .Caption = "Supprimer feuille"
    End With
End Sub


Public Sub deletersheet()
    On Error Resume Next
    Application.DisplayAlerts = False
    ActiveSheet.Delete
    Sheets(1).Select
    Application.DisplayAlerts = True
End Sub

terminé basta tu a tes bouton dynamiques dans tes feuilles nouvellement créées et leur on action opérant
et ça fonctionne tout aussi bien
;)
 

Discussions similaires

Réponses
2
Affichages
98
Réponses
5
Affichages
124

Statistiques des forums

Discussions
311 709
Messages
2 081 754
Membres
101 812
dernier inscrit
trufu