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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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 ?
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 ?