Bonjour,

Pour un patch, je souhaite copier une sub Worksheet_Change depuis le code du "module3" du classeur de patch vers le code d'une feuille 'NameFeuille' qui se trouve dans un autre classeur (NomClasseurBut).

J'ai activé 'Microsoft Visual Basic for Applications Extensibility 5.3.' dans les 2 classeurs conformément au tutoriel de SylkyRoad.

J'ai essayé :
1/ récupérer le code dans une variable 'texte' avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Texte = .Lines(.ProcBodyLine(NomSubSource, vbext_pk_Proc), _
        .ProccountLines(NomSubSource, vbext_pk_Proc) - 1)
puis
a/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Workbooks(NomClasseurBut).VBProject. _
        VBComponents(NameFeuille).CodeModule.InsertLines NoLigneBut, Texte
b/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Workbooks(NomClasseurBut).VBProject. _
        VBComponents(NameFeuille).CodeModule.AddFromString Texte
2/ récupérer le code dans un fichier .bas puis le récupérer dans LeTexte et faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
With Workbooks(NomClasseurBut).VBProject.VBComponents
    With .Item(NameFeuille).CodeModule
        .AddFromString LeTexte
    End With
End With
3/ récupérer le code dans un fichier .bas puis le récupérer le texte à importer dans oModule avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Workbooks(NomClasseurBut).VBProject.VBComponents.Import(FichierImport)
et

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
With Workbooks(NomClasseurBut).VBProject.VBComponents(NameFeuille).CodeModule
    X = .CountOfLines
    .DeleteLines 1, X
    .InsertLines 1, oModule.Lines(1, oModule.CountOfLines)
    End With

(ce sont des bouts de codes récupérés ici ou là, merci à leurs auteurs !)

MAIS à chaque fois, Excel plante au bout de quelques secondes après l'insertion des lignes (plantage entrainant la fermeture d'excel).

Remarque :
1/ mes sub d'import/export fonctionnent correctement lorsque j'importe le code d'un module vers un autre module

2/ je suis sur que les lignes importées ne contiennent pas d'erreurs (j'ai aussi essayé avec la macro vidée de ses lignes).

Si quelqu'un à une idée, je suis preneur...

Cordialement
MFM