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

exporter un module par macro

  • Initiateur de la discussion Initiateur de la discussion archi
  • 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 !

archi

XLDnaute Impliqué
Bjr à tous,
j'ai un code de type:
Code:
Sub Copy()
Dim MaLigne As Integer
ActiveSheet.Copy
ChDir "C:\Martin Carrelage\Factures Clients"
Application.Dialogs(xlDialogSaveAs).Show
Application.ScreenUpdating = False
With ActiveSheet.Select
MaLigne = Range("E65536").End(xlUp).Row
    Range("A8:G" & MaLigne).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
Range("F22").Select
Application.ScreenUpdating = True
End With
End Sub
toutefois, j'ai sur cette feuille ainsi copiée, un bouton macro dont j'aimerai exporter également le module associé (pour éviter les liaisons avec le fichier d'origine)
mais je ne sais pas comment insérer cette opération au code ??
pouvez vous m'aider ??
merci
bye
 
Re : exporter un module par macro

Merci Eric,
en regardant le fil proposé, j'ai pu extraire le code adéquat de Frédérique Singonneau
Code:
'Copie d'une macro contenue dans un Module Standard d'un classeur source pour être ré-écrite vers un classeur Cible :

Sub CopieCodeModule()
Dim S As String, Wbk As Workbook

With ActiveWorkbook.VBProject.VBComponents("Module1").C odeModule
S = .Lines(1, .CountOfLines)
End With

Set Wbk = Workbooks("New.xls")
Wbk.VBProject.VBComponents.Add 1
With Wbk.VBProject.VBComponents("Module1").CodeModule
.AddFromString S
End With

End Sub

cependant, je ne sais pas comment l'intéger a mon code ??
peux tu m'aider ??
bye
 
Re : exporter un module par macro

Bonsoir le forum
Bonsoir archi

Bonjour le forum
Bonjour archi

Je suppose que tu peux écrire, mais c'est à vérifier:


Sub Copy()
Dim MaLigne As Integer
ActiveSheet.Copy
ChDir "C:\Martin Carrelage\Factures Clients"
Application.Dialogs(xlDialogSaveAs).Show
Application.ScreenUpdating = False
With ActiveSheet.Select
MaLigne = Range("E65536").End(xlUp).Row
Range("A8:G" & MaLigne).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range("F22").Select
ici : CopieCodeModule
Application.ScreenUpdating = True
End With
ou là : CopieCodeModule

End Sub

et pour le bouton et son action :

ActiveSheet.Buttons.Add(99.75, 51.75, 86.25, 29.25).Select 'à améliorer
Selection.Characters.Text = "lance" ' le texte du bouton
Selection.OnAction = "macro01" ' à la place de "macro01" il faut indiquer le nom de la macro

à mettre après "CopieCodeModule"

A+
 
Re : exporter un module par macro

Re Eric,

je viens d'insérer le code suivant: (que je lance depuis le module "Perso.xls" associé a un bouton de la barre d'outils)
Code:
Sub Copy()
Dim MaLigne As Integer, S As String, Wbk As Workbook
ActiveSheet.Copy
ChDir "C:\Martin Carrelage\Factures Clients"
Application.Dialogs(xlDialogSaveAs).Show
Application.ScreenUpdating = False
With ActiveSheet.Select
MaLigne = Range("E65536").End(xlUp).Row
    Range("A8:G" & MaLigne).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End With
With ActiveWorkbook.VBProject.VBComponents("Module1").CodeModule
S = .Lines(1, .CountOfLines)
End With
Set Wbk = Workbooks("New.xls")
Wbk.VBProject.VBComponents.Add 1
With Wbk.VBProject.VBComponents("Module1").CodeModule
.AddFromString S
Application.ScreenUpdating = True
End With
End Sub
mais j'ai un bug en ligne:
Code:
With ActiveWorkbook.VBProject.VBComponents("Module1").CodeModule
que faire ??
bye

nota: ci-joint le fichier a problème
 

Pièces jointes

Dernière édition:
Re : exporter un module par macro

Re archi

Si je suis bien ce que tu veux, tu essaies de créer un fichier avec la copie d'une feuille d'un autre fichier ( = sauvegarder tes factures, si c'est cela il y a peut être une autre façon)

Dans ton code tu crées ta feuille/fichier et tu cherches le "module1" dans cette nouvelle feuille/fichier, donc c'est logique que tu ais un bug

Il faudrait que tu mettes en mémoire ton module avant de créer ton nouveau feuille/fichier ou que tu re-sélectionnes ton fichier "maître" pour récupérer ton "module1"

A+
 
- 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
10
Affichages
655
Réponses
17
Affichages
1 K
Réponses
5
Affichages
590
Réponses
2
Affichages
912
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…