OVH Cloud OVH Cloud

Creer bouton avec son code évenement

1 réponse
Avatar
Mimi
Bonjour, je veux cr=E9er un bouton avec un =E9venement click=20
en VBA. Seulement, je n'arrive pas =E0 ins=E9rer les codes VBA=20
dans la feuille o=F9 se trouve le bouton. J'ai un message=20
d'erreur: "L'acc=E8s par programme au projet VBA n'est pas=20
fiable."
Code d'insertion au module:

With ThisWorkbook.VBProject.VBComponents.
(ActiveSheet.Name).CodeModule
Nb_Lignes=3D .CountOfLines + 1
.InsertLines Nb_Lignes, Code
=20
End With

Merci de me filer un petit coup de main!

Mimi

1 réponse

Avatar
Denis Michon
Bonjour Mimi,


Voici une façon de faire pour ajouter un bouton de commande issu de la barre d'outils contrôle et le code associé sur
l'événement clic.


Définit dans la procédure les variables dûment identifées.

Et dans la procédure : "InsérerLeCodeDuBouton..." , tu devras définir la procédure à exécuter. Je t'ai donné un petit
exemple comment procéder.

'-----------------------
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
'-----------------------


Salutations!




"Mimi" a écrit dans le message de news:05c901c3a765$152afc60$
Bonjour, je veux créer un bouton avec un évenement click
en VBA. Seulement, je n'arrive pas à insérer les codes VBA
dans la feuille où se trouve le bouton. J'ai un message
d'erreur: "L'accès par programme au projet VBA n'est pas
fiable."
Code d'insertion au module:

With ThisWorkbook.VBProject.VBComponents.
(ActiveSheet.Name).CodeModule
Nb_Lignes= .CountOfLines + 1
.InsertLines Nb_Lignes, Code

End With

Merci de me filer un petit coup de main!

Mimi