Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Créer par le code un bouton et son code associé lors d'un click

4 réponses
Avatar
Florent149
Bonjour chers tous

Dans un module je souhaiterais declencher la creation d'un bouton avec son
code. J'ai trouvé un exemple qui fait ca sur le site de Frederic Sigonneau,
mais j'ai une erreur lors de l'execution, il semblerait que le code du bouton
ne peut etre edite...
Voici le code de Frederic Sigonneau:

Public Const NomBouton$ = "MonBouton"

Sub CreeBoutonFeuilleEtCode()
Dim Btn As OLEObject, VbCodeMod As Object
Dim i&, Code$

'le bouton
Set Btn = ActiveSheet.OLEObjects.Add _
(ClassType:="Forms.CommandButton.1") '
i = ActiveSheet.OLEObjects.Count
With Btn
.Object.Caption = "Test bouton " & i
.Object.Font.Bold = True
.Top = ActiveCell(1, 2).Top
.Left = ActiveCell(1, 2).Left
.Name = NomBouton & i
.Visible = True
End With
----------------------------------------------Jusque la c'est bon, le bouton
est créé!

'son code
Set VbCodeMod = ActiveWorkbook.VBProject.
_------------------------ERREUR!!!!
VBComponents(Btn.Parent.CodeName).CodeModule

Code = "Private Sub " & Btn.Name & "_Click()" & vbLf
Code = Code & " MsgBox ""Test réussi : " & Btn.Name & "" & vbLf
Code = Code & " ActiveCell.Select" & vbLf
Code = Code & "End Sub"

VbCodeMod.AddFromString Code

End Sub 'fs




Merci d'avance de vos precieuses reponses!
--
Flo

4 réponses

Avatar
Ange Ounis
Pas de problème pour moi avec ce code, cf classeur exemple à cette adresse :

http://cjoint.com/?hgu7wTOCla

----------
Ange Ounis
----------

Bonjour chers tous

Dans un module je souhaiterais declencher la creation d'un bouton avec son
code. J'ai trouvé un exemple qui fait ca sur le site de Frederic Sigonneau,
mais j'ai une erreur lors de l'execution, il semblerait que le code du bouton
ne peut etre edite...
Voici le code de Frederic Sigonneau:

Public Const NomBouton$ = "MonBouton"

Sub CreeBoutonFeuilleEtCode()
Dim Btn As OLEObject, VbCodeMod As Object
Dim i&, Code$

'le bouton
Set Btn = ActiveSheet.OLEObjects.Add _
(ClassType:="Forms.CommandButton.1") '
i = ActiveSheet.OLEObjects.Count
With Btn
.Object.Caption = "Test bouton " & i
.Object.Font.Bold = True
.Top = ActiveCell(1, 2).Top
.Left = ActiveCell(1, 2).Left
.Name = NomBouton & i
.Visible = True
End With
----------------------------------------------Jusque la c'est bon, le bouton
est créé!

'son code
Set VbCodeMod = ActiveWorkbook.VBProject.
_------------------------ERREUR!!!!
VBComponents(Btn.Parent.CodeName).CodeModule

Code = "Private Sub " & Btn.Name & "_Click()" & vbLf
Code = Code & " MsgBox ""Test réussi : " & Btn.Name & "" & vbLf
Code = Code & " ActiveCell.Select" & vbLf
Code = Code & "End Sub"

VbCodeMod.AddFromString Code

End Sub 'fs




Merci d'avance de vos precieuses reponses!


Avatar
Florent149
Oh c'est incroyable!

Ca doit etre sur mon ordi parce que j'ai exactement le meme message avec ton
classeur Ange Ounis! J'ai le meme message d'erreur "Programmatic access to
visual basic project is not trusted" que j'avais sur mon classeur. C'est peut
etre une option dans excel ou visual basic qui empeche de modifier le code de
cette facon? Ca me parait bizarre quand meme tout ca.
En tout cas si Ange ounis ou quelqu'un d'autre a une idée sur ce que ca peut
etre, soyez les bienvenus


--
Flo


"Ange Ounis" wrote:

Pas de problème pour moi avec ce code, cf classeur exemple à cette adresse :

http://cjoint.com/?hgu7wTOCla

----------
Ange Ounis
----------

Bonjour chers tous

Dans un module je souhaiterais declencher la creation d'un bouton avec son
code. J'ai trouvé un exemple qui fait ca sur le site de Frederic Sigonneau,
mais j'ai une erreur lors de l'execution, il semblerait que le code du bouton
ne peut etre edite...
Voici le code de Frederic Sigonneau:

Public Const NomBouton$ = "MonBouton"

Sub CreeBoutonFeuilleEtCode()
Dim Btn As OLEObject, VbCodeMod As Object
Dim i&, Code$

'le bouton
Set Btn = ActiveSheet.OLEObjects.Add _
(ClassType:="Forms.CommandButton.1") '
i = ActiveSheet.OLEObjects.Count
With Btn
.Object.Caption = "Test bouton " & i
.Object.Font.Bold = True
.Top = ActiveCell(1, 2).Top
.Left = ActiveCell(1, 2).Left
.Name = NomBouton & i
.Visible = True
End With
----------------------------------------------Jusque la c'est bon, le bouton
est créé!

'son code
Set VbCodeMod = ActiveWorkbook.VBProject.
_------------------------ERREUR!!!!
VBComponents(Btn.Parent.CodeName).CodeModule

Code = "Private Sub " & Btn.Name & "_Click()" & vbLf
Code = Code & " MsgBox ""Test réussi : " & Btn.Name & "" & vbLf
Code = Code & " ActiveCell.Select" & vbLf
Code = Code & "End Sub"

VbCodeMod.AddFromString Code

End Sub 'fs




Merci d'avance de vos precieuses reponses!





Avatar
Clément Marcotte
Bonjour,

Avec un Excel 2002 en Français:

Outils - Options - Sécurité - Sécurité des macros - sources fiables.

Cocher "Faire confiance au projet Visual Basic"


"Florent149" a écrit dans le message de
news:
Oh c'est incroyable!

Ca doit etre sur mon ordi parce que j'ai exactement le meme message avec
ton
classeur Ange Ounis! J'ai le meme message d'erreur "Programmatic access to
visual basic project is not trusted" que j'avais sur mon classeur. C'est
peut
etre une option dans excel ou visual basic qui empeche de modifier le code
de
cette facon? Ca me parait bizarre quand meme tout ca.
En tout cas si Ange ounis ou quelqu'un d'autre a une idée sur ce que ca
peut
etre, soyez les bienvenus


--
Flo


"Ange Ounis" wrote:

Pas de problème pour moi avec ce code, cf classeur exemple à cette
adresse :

http://cjoint.com/?hgu7wTOCla

----------
Ange Ounis
----------

Bonjour chers tous

Dans un module je souhaiterais declencher la creation d'un bouton avec
son
code. J'ai trouvé un exemple qui fait ca sur le site de Frederic
Sigonneau,
mais j'ai une erreur lors de l'execution, il semblerait que le code du
bouton
ne peut etre edite...
Voici le code de Frederic Sigonneau:

Public Const NomBouton$ = "MonBouton"

Sub CreeBoutonFeuilleEtCode()
Dim Btn As OLEObject, VbCodeMod As Object
Dim i&, Code$

'le bouton
Set Btn = ActiveSheet.OLEObjects.Add _
(ClassType:="Forms.CommandButton.1") '
i = ActiveSheet.OLEObjects.Count
With Btn
.Object.Caption = "Test bouton " & i
.Object.Font.Bold = True
.Top = ActiveCell(1, 2).Top
.Left = ActiveCell(1, 2).Left
.Name = NomBouton & i
.Visible = True
End With
----------------------------------------------Jusque la c'est bon, le
bouton
est créé!

'son code
Set VbCodeMod = ActiveWorkbook.VBProject.
_------------------------ERREUR!!!!
VBComponents(Btn.Parent.CodeName).CodeModule

Code = "Private Sub " & Btn.Name & "_Click()" & vbLf
Code = Code & " MsgBox ""Test réussi : " & Btn.Name & "" & vbLf
Code = Code & " ActiveCell.Select" & vbLf
Code = Code & "End Sub"

VbCodeMod.AddFromString Code

End Sub 'fs




Merci d'avance de vos precieuses reponses!







Avatar
Florent149
Merci beaucoup Clément c'est bien ca. Cependant ma spreadsheet etant destinee
a etre distribuee, connais tu un moyen pour activer cette option a
l'ouverture du classeur, ou alors est ce qu'elle le sera forcement si je
l'enregistre comme cela? (mais je ne pense pas que ce soit le cas...)

Merci
--
Flo


"Clément Marcotte" wrote:

Bonjour,

Avec un Excel 2002 en Français:

Outils - Options - Sécurité - Sécurité des macros - sources fiables.

Cocher "Faire confiance au projet Visual Basic"


"Florent149" a écrit dans le message de
news:
Oh c'est incroyable!

Ca doit etre sur mon ordi parce que j'ai exactement le meme message avec
ton
classeur Ange Ounis! J'ai le meme message d'erreur "Programmatic access to
visual basic project is not trusted" que j'avais sur mon classeur. C'est
peut
etre une option dans excel ou visual basic qui empeche de modifier le code
de
cette facon? Ca me parait bizarre quand meme tout ca.
En tout cas si Ange ounis ou quelqu'un d'autre a une idée sur ce que ca
peut
etre, soyez les bienvenus


--
Flo


"Ange Ounis" wrote:

Pas de problème pour moi avec ce code, cf classeur exemple à cette
adresse :

http://cjoint.com/?hgu7wTOCla

----------
Ange Ounis
----------

Bonjour chers tous

Dans un module je souhaiterais declencher la creation d'un bouton avec
son
code. J'ai trouvé un exemple qui fait ca sur le site de Frederic
Sigonneau,
mais j'ai une erreur lors de l'execution, il semblerait que le code du
bouton
ne peut etre edite...
Voici le code de Frederic Sigonneau:

Public Const NomBouton$ = "MonBouton"

Sub CreeBoutonFeuilleEtCode()
Dim Btn As OLEObject, VbCodeMod As Object
Dim i&, Code$

'le bouton
Set Btn = ActiveSheet.OLEObjects.Add _
(ClassType:="Forms.CommandButton.1") '
i = ActiveSheet.OLEObjects.Count
With Btn
.Object.Caption = "Test bouton " & i
.Object.Font.Bold = True
.Top = ActiveCell(1, 2).Top
.Left = ActiveCell(1, 2).Left
.Name = NomBouton & i
.Visible = True
End With
----------------------------------------------Jusque la c'est bon, le
bouton
est créé!

'son code
Set VbCodeMod = ActiveWorkbook.VBProject.
_------------------------ERREUR!!!!
VBComponents(Btn.Parent.CodeName).CodeModule

Code = "Private Sub " & Btn.Name & "_Click()" & vbLf
Code = Code & " MsgBox ""Test réussi : " & Btn.Name & "" & vbLf
Code = Code & " ActiveCell.Select" & vbLf
Code = Code & "End Sub"

VbCodeMod.AddFromString Code

End Sub 'fs




Merci d'avance de vos precieuses reponses!