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

Copier un module par macro

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 !!!
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
667
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…