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

récupérer un sub dans le code d'une feuille

1 réponse
Avatar
Michel41
Bonsoir

Une feuille contient du code vba avec des sub évènementiels. Si on exporte
ce code, Excel le fait sous la forme d'un module de classe bien qu'il
s'agisse d'un module d'exécution inclus dans une feuille.

Si on réimporte ce module de classe, il sera placé avec les autres modules
de classes sans que l'on puisse réintégrer ces instructions dans le code de
la feuille.

Peut on avec vba replacer ces programmes évènementiels dans la zone de code
de la feuille d'origine ?

Merci.@+
M41

1 réponse

Avatar
PMO
Bonjour,

Un code exemple qui importe un module de classe de type Feuil.cls,
copie son code, le colle dans la feuille choisie et détruit l'import .cls

Tout d'abord adaptez les constantes à votre usage
Const PATH_IMPORT_CLS As String = "???"
Const FEUIL_ADD_COD As String = "???"

Code à copier dans un module standard
'******************
Const PATH_IMPORT_CLS As String = "c:Feuil1.cls"
Const FEUIL_ADD_COD As String = "Feuil2"

Sub PMO_IntegreCode()
Dim VBCs As Object 'la collection VBComponents
Dim VBC As Object 'un seul VBComponent
Dim A$
Set VBCs = ActiveWorkbook.VBProject.VBComponents
'---- Import du .cls ----
Set VBC = VBCs.Import(PATH_IMPORT_CLS)
'---- Affectation de tout le code dans une string ----
A$ = VBC.CodeModule.Lines(1, VBC.CodeModule.CountOfLines)
'---- Copie du code dans la feuille destination ----
VBCs(FEUIL_ADD_COD).CodeModule.AddFromString A$
'---- Supprime l'import ----
VBCs.Remove VBC
End Sub
'******************

Cordialement.
--
PMO
Patrick Morange



Bonsoir

Une feuille contient du code vba avec des sub évènementiels. Si on exporte
ce code, Excel le fait sous la forme d'un module de classe bien qu'il
s'agisse d'un module d'exécution inclus dans une feuille.

Si on réimporte ce module de classe, il sera placé avec les autres modules
de classes sans que l'on puisse réintégrer ces instructions dans le code de
la feuille.

Peut on avec vba replacer ces programmes évènementiels dans la zone de code
de la feuille d'origine ?

Merci.@+
M41