Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Pourquoi une macro ?

Parce que c'est un traitement parmi tant d'autre.

J'ai une une grosse macro que lance des utilisateurs pour mettre en forme un classeur et j'ai besoin de macro dans ce classeur.
 
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
4
Affichages
82
Réponses
9
Affichages
146
Réponses
3
Affichages
190
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…