Bonjour a tous
J'aimerais savoir comment copier un module en code ^^
en gros je veux que quand j'appuie sur un bouton il me copie un module du 1er classeur dans le 2eme classeur
Cordialement
Bonjour a tous
J'aimerais savoir comment copier un module en code ^^
en gros je veux que quand j'appuie sur un bouton il me copie un module du 1er classeur dans le 2eme classeur
Cordialement
Quelque chose du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Dim LigDeb As Long Dim NbLig As Long Dim stCode As String Dim vbNew As Workbook Dim objF As Object Set vbNew=Workbook("AutreClasseur.xlsx") Set objF = ThisWorkbook.VBProject.VBComponents("MonModuleSource") stCode = objF.CodeModule.Lines(LigDeb, NbLig) Set objF = wbNew.VBProject.VBComponents("MonModuleCible") objF.CodeModule.addfromstring (stCode)
Bonjour,
La macro suivante copie le module "Module 1" du classeur actif et l'importe dans le classeur contenant la macro.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub CopieModule() ' suppression d'un fichier d'export On Error Resume Next Kill "C:\temp\export.bas" On Error GoTo 0 ' Export Module 1 ActiveWorkbook.VBProject.VBComponents("module1").Export "C:\temp\export.bas" ' Import Module 1 dans thisworkbook Set Var = Application.VBE.ActiveVBProject.VBComponents Application.VBE.ActiveVBProject.VBComponents.Import "C:\temp\export.bas" Kill "C:\temp\export.bas" End Sub
Libesa, merci pour ton aide, mais malheureusement ce que tu m'as donné ne fonctionne pas
Pour Daniel.C Je suis désolé je ne comprend pas ton explication
En gros cette macro copie le module1 du classeur actif, et l'importe dans la classeur contenant la macro => donc je dois mettre cette macro dans la classeur ou je veux que le module soit mis ??
Moi il me faudrait l'inverse, que je mette la macro dans le classeur ou je veux prendre le module, pour l'implanter dans un autre classeur (qui est ouvert)
Daniel.C
Je ne comprend pas ce que signifie :
Ni ce que se fichier fait la, car moi je ne l'ai pas la ^^'
Code : Sélectionner tout - Visualiser dans une fenêtre à part Kill "C:\temp\export.bas"
A une petite faute de frappe près (vbNew est devenu wbNew quelques lignes plus bas) cela fonctionne chez moi.
As tu remplacé les noms bidons que j'ai mis pour l'exemple et les variables LigDeb et NbLig par les valeurs de ton programme?
As tu activé la référence adequate (Microsoft Visual Basic for Applications Extensibility je crois) ?
Bon j'ai l'impression qu'il y a un problème
Donc on va le chercher..
Déjà je suis sous Excel 2003 (Windows 7)
pour la référence j'ai : Microsoft Visual Basic for Applications Extensibility 5.3
Ensuite dans le programme que j'ai commenté, a toi de me dire ou est-ce que je me suis trompé ^^ Je vois très rarement mes erreur, mais c'est rattrapé par le fait que quand on m'en montre une je ne dénie pas l'avoir faite.
(tu as oublié un "s" )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Sub test_import() ' Déclaration des variables Dim LigDeb As Long Dim NbLig As Long Dim stCode As String Dim vbNew As Workbook Dim objF As Object ' ici, je dois mettre le nom du classeur dans le quel je veux importer Set vbNew = Workbooks ("classeur2 .xls") ' ici, je dois mettre le nom du module a exporter Set objF = ThisWorkbook.VBProject.VBComponents("Module_export") ' ici, je dois mettre les lignes que je veux exporter dans ce module (pas sûr) stCode = objF.CodeModule.Lines(1, 402) ' ici, je dois mettre le nom du module dans le quel je dois intégré ces lignes Set objF = vbNew.VBProject.VBComponents("Moule_import") ' ici, je ne sais pas, peut être que l'ajout est de mode code objF.CodeModule.addfromstring (stCode) End Sub
Set vbNew=Workbook("AutreClasseur.xlsx")
deviens
Set vbNew=Workbooks("AutreClasseur.xlsx")
enfin je pense
Et il me met toujours une erreur après cette ligne :
sois disant, la méthode 'VBProject' de l'objet '_Workbook' a échoué
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set objF = ThisWorkbook.VBProject.VBComponents("Module_export")
Cordialement
Partager