OVH Cloud OVH Cloud

Pb Ajout évenement à un bouton

1 réponse
Avatar
Mimi
Bonjour,

J'ai d=E9j=E0 demand=E9 conseil pour ce m=EAme probl=E8me mais, je=20
ne l'ai pas encore r=E9soud.

En fait dans le code qu'on m'a propos=E9(ci-dessous), il y a
With ThisWorkbook.VBProject.VBComponents(A).CodeModule
.AddFromString Code
End With

qui ne passe pas. J'ai toujours le m=EAme message d'erreur:
"L'Acc=E9s par programme au projet Visual Basic n'est pas=20
fiable".

Je n'ai aucune id=E9e de comment r=E9soudre ce pb.
Alors, merci de votre coup de main.

Mirana

'-----------------------
Sub insererBoutonDeCommande()

'pour ins=E9rer le bouton =E0 un
'endroit pr=E9cis o=F9 se trouve une cellule.

Dim L As Double, T As Double, B As Object
Dim NomBouton As String, NomFeuille As String
Dim Lg As Double, HT As Double

'********Variable =E0 d=E9terminer***************

NomBouton =3D "OK" 'A d=E9terminer
NomFeuille =3D "Feuil1" '=E0 d=E9terminer
Adr =3D Range("A2:C3").Address '=E0 d=E9terminer

'********Variable =E0 d=E9terminer***************

With Worksheets(NomFeuille)
L =3D .Range(Adr).Left
T =3D .Range(Adr).Top
Lg =3D .Range(Adr).Width
HT =3D .Range(Adr).Height

With .OLEObjects.Add
(ClassType:=3D"Forms.CommandButton.1", _
Link:=3DFalse, DisplayAsIcon:=3DFalse, Left:=3DL, _
Top:=3DT, Width:=3DLg, Height:=3DHT)
With .Object
.Caption =3D NomBouton
.Font.Name =3D "Arial"
.Font.Size =3D 14
.Font.Bold =3D True
End With
Ins=E9rerLeCodeDuBouton NomFeuille, .Name
End With
End With

End Sub

'-----------------------
Sub Ins=E9rerLeCodeDuBouton(NomFeuille As String, NomBouton=20
As String)

Dim A As String, Code As String
A =3D Worksheets(NomFeuille).CodeName

Code =3D " Private Sub " & NomBouton & "_Click()" & vbCrLf
Code =3D Code & " Msgbox ""Bonjour""" & vbCrLf
Code =3D Code & "End Sub"

With ThisWorkbook.VBProject.VBComponents(A).CodeModule
.AddFromString Code
End With

End Sub
'-----------------------

1 réponse

Avatar
ru-th
Salut

as-tu ce problème sous Xp ?
si oui, regardes sous outils/options doit y avoir quelque part sécurité et
l'option : faire confiance au project visual basic
(de mémoire, parce que dans l'instant, j'ai point xp sous la main)
De toutes façons, si je racontes des c...neries, quelqu'un viendra bien me
le dire ;-)

a+
rural thierry
"Mimi" a écrit dans le message de
news: 3d1401c3aa94$6360dd00$
Bonjour,

J'ai déjà demandé conseil pour ce même problème mais, je
ne l'ai pas encore résoud.

En fait dans le code qu'on m'a proposé(ci-dessous), il y a
With ThisWorkbook.VBProject.VBComponents(A).CodeModule
.AddFromString Code
End With

qui ne passe pas. J'ai toujours le même message d'erreur:
"L'Accés par programme au projet Visual Basic n'est pas
fiable".

Je n'ai aucune idée de comment résoudre ce pb.
Alors, merci de votre coup de main.

Mirana

'-----------------------
Sub insererBoutonDeCommande()

'pour insérer le bouton à un
'endroit précis où se trouve une cellule.

Dim L As Double, T As Double, B As Object
Dim NomBouton As String, NomFeuille As String
Dim Lg As Double, HT As Double

'********Variable à déterminer***************

NomBouton = "OK" 'A déterminer
NomFeuille = "Feuil1" 'à déterminer
Adr = Range("A2:C3").Address 'à déterminer

'********Variable à déterminer***************

With Worksheets(NomFeuille)
L = .Range(Adr).Left
T = .Range(Adr).Top
Lg = .Range(Adr).Width
HT = .Range(Adr).Height

With .OLEObjects.Add
(ClassType:="Forms.CommandButton.1", _
Link:úlse, DisplayAsIcon:úlse, Left:=L, _
Top:=T, Width:=Lg, Height:=HT)
With .Object
.Caption = NomBouton
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
End With
InsérerLeCodeDuBouton NomFeuille, .Name
End With
End With

End Sub

'-----------------------
Sub InsérerLeCodeDuBouton(NomFeuille As String, NomBouton
As String)

Dim A As String, Code As String
A = Worksheets(NomFeuille).CodeName

Code = " Private Sub " & NomBouton & "_Click()" & vbCrLf
Code = Code & " Msgbox ""Bonjour""" & vbCrLf
Code = Code & "End Sub"

With ThisWorkbook.VBProject.VBComponents(A).CodeModule
.AddFromString Code
End With

End Sub
'-----------------------