Insertion d'un contrôle ActiveX avec code sur une feuille

Enerjp

XLDnaute Junior
Bonjour à tous,

Alors voilà, Je cherche simplement à insérer un bouton avec sa marco sur une feuille. Le problème est qu'une erreur survient lorsque je souhaite l’insérer, le supprimer ou changer ses propriétés (position, nom, caption, etc).

De plus, même avec "On error resume next" au début, il ne m'écrit pas le code dans le module de la feuille...

J'ai un message d'erreur "Impossible d'entrer en mode Arrêt maintenant". je clique sur "continuer" et là Erreur 1004 "L'accès par programme au projet Visual Basic n'est pas fiable".

Voici le code, si quelqu'un voit une erreur n'hésitez pas^^

Code:
Sub InsertBout()
Dim Sh As Worksheet
Dim Empl As Range
Dim Btn As OLEObject
Dim LaMacro$

With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
End With
    
Set Sh = ThisWorkbook.ActiveSheet

With Sh
       .Activate

For Each Btn In Sh.OLEObjects
    If Btn.progID = "Forms.CommandButton.1" Then
        Btn.Delete
    End If
Next Btn

Set Empl = .Range("a1:c1")
Set Btn = Sh.OLEObjects.Add(ClassType:="Forms.CommandButton.1")

    With Btn
        '.Name = "Btn" & Replace(Sh.Name, " ", "")
        .Left = Empl.Left
        .Top = Empl.Top
        .Width = Empl.Width
        .Height = Empl.Height * (2 / 3)
       ' .Object.Caption = "Neu " & Sh.Name
    End With

    LaMacro = "Private Sub " & Btn.Name & "_Click()" & vbCrLf
    LaMacro = LaMacro & "Call test" & vbCrLf
    LaMacro = LaMacro & "End Sub"

    With ThisWorkbook.VBProject.VBComponents(Sh.Name).CodeModule
        Nligne = .CountOfLines + 1
        .insertlines Nligne, LaMacro
    End With
    
End With

With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
End With

End Sub

Sub Test()
    MsgBox "Vous avez cliqué sur le bouton"
End Sub

Merci d'avance pour votre aide,

enerjp
 

Pierrot93

XLDnaute Barbatruc
Re : Insertion d'un contrôle ActiveX avec code sur une feuille

Bonjour,

pour cette erreur :
je clique sur "continuer" et là Erreur 1004 "L'accès par programme au projet Visual Basic n'est pas fiable".

sous 2010 => options => "centre de gestion de la confidentialité" => bouton "paramètres du centre..." => paramètres des macros => cocher "accès approuvé au modèle d'objet du projet vba"

l'équivalent doit être aussi présent sous 2007....

bonne journée
@+
 

Discussions similaires

Réponses
8
Affichages
841

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 184
dernier inscrit
amiko