Déplacer une macro par macro

  • Initiateur de la discussion Initiateur de la discussion sunguess
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sunguess

XLDnaute Junior
Bonjour,

J'ai une petite macro "macrotest" enregistrée dans le module 1 de classeur1.xls

Je souhaiterais créer une macro qui déplace "macrotest" dans le fichier excel classeur2.xls afin que ce fichier soit autonome

Est ce possible ? comment faire ?

D'avance merci
 
Re : Déplacer une macro par macro

Bonjour,

pourquoi une macro ? dans l'éditeur vba => fenêtre "vba project" => tu fais glisser le module 1 du classeur 1 vers le classeur 2, il seerai ainsi copié... A noter que tu peux également faire des imports et exports avec les module...

bon après midi
@+
 
Re : Déplacer une macro par macro

Re,

essaye ceci alors, déplace le module dans sa totalité .. "faire confiance au projet visual basic" doit être coché dans les options de sécurité :

Code:
Option Explicit
Sub test()
Dim f As String
f = ThisWorkbook.Path & "\test.bas"
Workbooks("Classeur1.xls").VBProject.VBComponents("Module1").Export f
Workbooks("Classeur2.xls").VBProject.VBComponents.Import f
Kill f
End Sub
 
Re : Déplacer une macro par macro

merci de ton aide.

la macro plante sur : Workbooks("MiseEnForme2.xlsm").VBProject.VBComponents("Module3").Export f

j'ai copié le code suivant
Code:
Sub transfert()
Dim f As String
f = ThisWorkbook.Path & "\transfert.bas"
Workbooks("MiseEnForme2.xlsm").VBProject.VBComponents("Module3").Export f
Workbooks("results.xlsm").VBProject.VBComponents.Import f
Kill f
End Sub

MiseEnForme2.xlsm étant le classeur avec la macro de mise en forme
results.xlsm étant le fichier mis en forme
 
Re : Déplacer une macro par macro

j'ai trouvé une solution :

Code:
Sub CopyModule(SourceWB As Workbook, strModuleName As String, _
    TargetWB As Workbook)
' copies a module from one workbook to another
' example:
' CopyModule Workbooks("Book1.xls"), "ModuleSchemas", _
    Workbooks("Book2.xls")
Dim strFolder As String, strTempFile As String
    strFolder = SourceWB.Path
    If Len(strFolder) = 0 Then strFolder = CurDir
    strFolder = strFolder & "\"
    strTempFile = strFolder & "~tmpexport.bas"
    On Error Resume Next
    SourceWB.VBProject.VBComponents(strModuleName).Export strTempFile
    TargetWB.VBProject.VBComponents.Import strTempFile
    Kill strTempFile
    On Error GoTo 0
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
43
Réponses
9
Affichages
142
Réponses
3
Affichages
189
Retour