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

Ajout de code VBA

1 réponse
Avatar
JCD
Bonjour,
J'ai le probl=E8me suivant :

Une macro ajoute =E0 mon classeur par l'instruction=20
Charts.Add.

Je souhaite ensuite ins=E9rer du code VBA dans le module de=20
cette feuille de graphique.

J'ai tent=E9 d'utilis=E9 la macro suivante mais le code est=20
ins=E9r=E9 dans le module du Workbook, et pas de la feuille de=20
graphique.

Merci de votre aide !
JCD

(ci-dessous la macro)
_____________________________________________
Sub Addcode()

Dim wb As Workbook
Dim ws As Chart
=20
Set wb =3D ActiveWorkbook
Set ws =3D Sheets("GANTT") 'ma feuille de graphique

=20


Code =3D "Private Sub Chart_Deactivate()" & vbLf
Code =3D Code & " Application.DisplayAlerts =3D False" & vbLf
Code =3D Code & " Sheets(" & Chr(34) & "GANTT" & Chr(34)=20
& ").Delete" & vbLf
Code =3D Code & "End Sub"
=20

wb.VBProject.VBComponents.Item(2).CodeModule.AddFromString=20
Code

Set ws =3D Nothing
Set wb =3D Nothing
=20
End Sub

1 réponse

Avatar
Jean-François Aubert
Salut JCD,

Il faut utiliser le code name de la feuille nommée "GANTT"

yy = Sheets("GANTT").CodeName
wb.VBProject.VBComponents(yy). _
CodeModule.AddFromString Code

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"JCD" a écrit dans le message de
news:1a7bb01c41e41$fb0eb890$
Bonjour,
J'ai le problème suivant :

Une macro ajoute à mon classeur par l'instruction
Charts.Add.

Je souhaite ensuite insérer du code VBA dans le module de
cette feuille de graphique.

J'ai tenté d'utilisé la macro suivante mais le code est
inséré dans le module du Workbook, et pas de la feuille de
graphique.

Merci de votre aide !
JCD

(ci-dessous la macro)
_____________________________________________
Sub Addcode()

Dim wb As Workbook
Dim ws As Chart

Set wb = ActiveWorkbook
Set ws = Sheets("GANTT") 'ma feuille de graphique




Code = "Private Sub Chart_Deactivate()" & vbLf
Code = Code & " Application.DisplayAlerts = False" & vbLf
Code = Code & " Sheets(" & Chr(34) & "GANTT" & Chr(34)
& ").Delete" & vbLf
Code = Code & "End Sub"


wb.VBProject.VBComponents.Item(2).CodeModule.AddFromString
Code

Set ws = Nothing
Set wb = Nothing

End Sub