Copier un module par macro

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 !

jeanmomo

XLDnaute Nouveau
Bonjour à toutes et à tous !!!

Après 3h d'essais et de recherches sur divers forums, je sollicite votre aide.

J'ai un fichier base.xls, qui par macro, copie l'onglet "synthèse" en valeur et format dans un nouveau classeur , en attribuant au nouveau classeur un nom dépendant de la valeur d'une cellule de l'onglet "synthèse" du fichier base.xls, et qui l'enregistre dans le même dossier que le fichier base.xls.

Jusqu'ici je m'en suis sorti.

Maintenant, je souhaite que cette même macro copie également un bouton présent sur cet onglet "synthèse" et la macro qui va avec ("Module1").

J'y suis arrivé en copiant/déplaçant l'onglet dans un nouveau classeur pour d'autres fichiers, mais là, l'onglet reposant sur un énorme TCD ( au moins une minute de traitement pour copier/déplacer l'onglet dans un autre classeur), je suis donc donc contraint de passer par une copie en valeur et format dans un nouveau classeur.
Toutefois, je ne m'en suis pas sorti avec les import/export.

Voici le code:
Sub CommandButton1_Click()
Dim chemin As String, fichier As String
Dim NomModule As String
Dim NomClasseur As String
Dim cheminmacro As String
Dim VBPMod As Object

nomfichier = ThisWorkbook.Name ' le fichier base.xls
chemin = ThisWorkbook.Path
fichier = chemin & "\" & Range("AD4") & ".xls" ' le nom du nouveau classeur
NomModule = "Module1"

cheminmacro = ThisWorkbook.Path & "\" & NomModule & ".bas"
Application.ScreenUpdating = False
' on est sur l'onglet "synthèse"
Cells.Select
Range("AH13").Activate
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWorkbook.SaveAs Filename:=fichier

Windows(nomfichier).Activate


ThisWorkbook.VBProject.VBComponents("Module1").Export _
"cheminmacro" & ".bas"

Windows(fichier).Activate
ThisWorkbook.VBProject.VBComponents("Module1").Import "cheminmacro" & ".bas"
end sub

J'espère avoir été suffisament précis, merci d'avance pour votre aide !!!
 
- 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
549
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
821
Réponses
5
Affichages
480
Réponses
3
Affichages
588
Retour