rockerfou
Messages postés16Date d'inscriptionjeudi 28 août 2003StatutMembreDernière intervention28 novembre 2014
-
27 août 2009 à 10:26
dedenet2
Messages postés372Date d'inscriptionvendredi 27 juillet 2007StatutMembreDernière intervention22 juillet 2013
-
29 août 2009 à 12:56
Bonjour à tous,
Je suis en train d'écrire une application VBA sous XL mais je coince.
Il faudrait que j'insère une macro (plus exactement dans la partie "Private Sub Worksheet_beforeDoubleClick")dans une feuille qui est créée automatiquement par ma macro principale. Comment faire ???
En résumé je cherche à créer une macro qui crée une macro !
Est-ce possible
A voir également:
Comment créer une macro sous XL... depuis une macro !
mimiZanzan
Messages postés301Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention17 décembre 2017 28 août 2009 à 00:26
Salut rockerfou,
Ce que tu veux est très possible, à condition d'ajouter la référence suivante au VBA:
"Microsoft Visual Basic for applications Extensibility 5.3"
(avec le menu Outils/Références)
Puis voici le code à mettre dans un module
Sub EcritMacro() 'écrit une macro dans la procédure Worksheet_BeforeDoubleClick de la feuille "New"
Dim d As VBComponent, l As Integer
'ajoute une feuille à la suite de "Feuil1" (par ex) et la nomme "New" (par ex)
Sheets.Add after:=Sheets("Feuil1")
ActiveSheet.Name = "New"
'affecter la variable au code module de la feuille "New"
Set d = ThisWorkbook.VBProject.VBComponents(ThisWorkbook.Worksheets("New").CodeName)
'ajouter la procédure d'évènement souhaitée (ici Worksheet_BeforeDoubleClick)
'ceci renvoie le n° de ligne de la procédure
l = d.CodeModule.CreateEventProc("BeforeDoubleClick", "Worksheet")
'insérer le code que l'on veut dans la procédure créée, avec des sauts de ligne (vbcr) si besoin
d.CodeModule.InsertLines l + 1, "Dim Cel as Range" & vbCr & "Set Cel=sheets(""New"").range(""B2"")" & vbCr & _
"Cel.value=10"
End Sub
Je viens d'essayer ceci, et çà marche!
Bien sûr, le code que j'ai inséré n'est qu'un exemple. Tu mets ce que tu veux.
dedenet2
Messages postés372Date d'inscriptionvendredi 27 juillet 2007StatutMembreDernière intervention22 juillet 20132 27 août 2009 à 20:28
Bonjour ,
On doit pouvoir creer les codes en automatique
mais je ne sais encore comment faire.
Pour ton problème de feuille avec code integrée
Peut être faut il créer une feuille modele
qui serait masquée avec un code dans l'evenement "Private Worksheet_beforeDoubleClick")puis faire
une copie de celle-ci lorsque tu voudras inserer
une nouvelle feuille ?