Copie userformpar macro
Résolu
diabolo162
Messages postés
1039
Statut
Membre
-
diabolo162 Messages postés 1039 Statut Membre -
diabolo162 Messages postés 1039 Statut Membre -
Bonjour,
je sollicite votre aide car avec l'enregistreur de macro je n'arrive pas a créer une macro qui me copierai mon "userform3"dans un nouveau classeur.
la macro que j'utilise actuellement ci dessous copie les feuilles dans un nouveau classeur:
Est il possible d'insérer une fonction adapter à ce code pour la copie du userform3 et son module ?
Merci d'avance pour votre coup de pouce....
Si besoin je peux vous fournir les fichiers mais ils sont bourrez de liaison....
Sub CopyFeuillesNormal()
'copier les feuille menu normal dans un autre classeur
Dim NomFeuilles(7) As String 'var tableau pour 7 feuilles
NomFeuilles(0) = Sheets(6).Name
NomFeuilles(1) = Sheets(8).Name
NomFeuilles(2) = Sheets(10).Name
NomFeuilles(3) = Sheets(12).Name
NomFeuilles(4) = Sheets(14).Name
NomFeuilles(5) = Sheets(16).Name
NomFeuilles(6) = Sheets(18).Name
NomFeuilles(7) = Sheets(20).Name
Sheets(Array(NomFeuilles(0), NomFeuilles(1), NomFeuilles(2), NomFeuilles(3), NomFeuilles(4), NomFeuilles(5), NomFeuilles(6), NomFeuilles(7))).Copy
Application.Dialogs(xlDialogSaveAs).Show
End Sub
Sub CopyFeuillesRégime()
'copier les feuille menu Régime dans un autre classeur
Dim NomFeuilles(7) As String 'var tableau pour 7 feuilles
NomFeuilles(0) = Sheets(7).Name
NomFeuilles(1) = Sheets(9).Name
NomFeuilles(2) = Sheets(11).Name
NomFeuilles(3) = Sheets(13).Name
NomFeuilles(4) = Sheets(15).Name
NomFeuilles(5) = Sheets(17).Name
NomFeuilles(6) = Sheets(19).Name
NomFeuilles(7) = Sheets(21).Name
Sheets(Array(NomFeuilles(0), NomFeuilles(1), NomFeuilles(2), NomFeuilles(3), NomFeuilles(4), NomFeuilles(5), NomFeuilles(6), NomFeuilles(7))).Copy
Application.Dialogs(xlDialogSaveAs).Show
End Sub
je sollicite votre aide car avec l'enregistreur de macro je n'arrive pas a créer une macro qui me copierai mon "userform3"dans un nouveau classeur.
la macro que j'utilise actuellement ci dessous copie les feuilles dans un nouveau classeur:
Est il possible d'insérer une fonction adapter à ce code pour la copie du userform3 et son module ?
Merci d'avance pour votre coup de pouce....
Si besoin je peux vous fournir les fichiers mais ils sont bourrez de liaison....
Sub CopyFeuillesNormal()
'copier les feuille menu normal dans un autre classeur
Dim NomFeuilles(7) As String 'var tableau pour 7 feuilles
NomFeuilles(0) = Sheets(6).Name
NomFeuilles(1) = Sheets(8).Name
NomFeuilles(2) = Sheets(10).Name
NomFeuilles(3) = Sheets(12).Name
NomFeuilles(4) = Sheets(14).Name
NomFeuilles(5) = Sheets(16).Name
NomFeuilles(6) = Sheets(18).Name
NomFeuilles(7) = Sheets(20).Name
Sheets(Array(NomFeuilles(0), NomFeuilles(1), NomFeuilles(2), NomFeuilles(3), NomFeuilles(4), NomFeuilles(5), NomFeuilles(6), NomFeuilles(7))).Copy
Application.Dialogs(xlDialogSaveAs).Show
End Sub
Sub CopyFeuillesRégime()
'copier les feuille menu Régime dans un autre classeur
Dim NomFeuilles(7) As String 'var tableau pour 7 feuilles
NomFeuilles(0) = Sheets(7).Name
NomFeuilles(1) = Sheets(9).Name
NomFeuilles(2) = Sheets(11).Name
NomFeuilles(3) = Sheets(13).Name
NomFeuilles(4) = Sheets(15).Name
NomFeuilles(5) = Sheets(17).Name
NomFeuilles(6) = Sheets(19).Name
NomFeuilles(7) = Sheets(21).Name
Sheets(Array(NomFeuilles(0), NomFeuilles(1), NomFeuilles(2), NomFeuilles(3), NomFeuilles(4), NomFeuilles(5), NomFeuilles(6), NomFeuilles(7))).Copy
Application.Dialogs(xlDialogSaveAs).Show
End Sub
A voir également:
- Copie userformpar macro
- Copie cachée - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Super copie - Télécharger - Gestion de fichiers
- Copie écran samsung - Guide
- Copie disque dur - Guide
7 réponses
bonjour
Pour recopier le userform et son code sur un autre classeur, tu peux le faire glisser directement à la souris.
Pour recopier le userform et son code sur un autre classeur, tu peux le faire glisser directement à la souris.
Oui je sais bien mais sur des gros dossiers il faut penser à faire pleins de petite choses à droite et à gauche alors à la fin ca commence d'etre compliqué de penser à tout et j'aimerais dans la mesure du possible simplifier les choses et rendre agréable l'utilisation pour ceux qui ne s'y connaissent rien dans la VBA.
Bonjour,
Un essai :
bon courage
Un essai :
Sub ImportExport()
Dim UsfExport As String, LePath As String
'Détermination du répertoire
LePath = ActiveWorkbook.Path & "\"
'fichier temporaire pour l'exportation/importation
UsfExport = LePath & "usf.frm"
'exportation depuis le classeur qui contient ce code
ThisWorkbook.VBProject. _
VBComponents("UserForm3").Export UsfExport
'importation dans le fichier de ton choix
Workbooks("essai import.xls").VBProject. _
VBComponents.Import(UsfExport).Name = "UserForm3"
'destruction du fichier temporaire
Kill UsfExport
End Sub
bon courage
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour diabolo162,
Voici ton code simplifié et intégrant la sauvegarde de "UserForm3" :
J'ai rajouté la fermeture du nouveau classeur, mais tu peux l'enlever bien sûr.
Toujours zen
Voici ton code simplifié et intégrant la sauvegarde de "UserForm3" :
Dim man As String ' nom sauvegarde usf
Sub CopyFeuillesNormal()
'copier les feuille menu normal dans un autre classeur
man = ActiveWorkbook.Path & "\man.frm"
ActiveWorkbook.VBProject.VBComponents("UserForm3").Export man
Sheets(Array(6, 8, 10, 12, 14, 16, 18, 20)).Copy
ActiveWorkbook.VBProject.VBComponents.Import (man)
man = Replace(man, "frm", "fr*")
Kill man
Application.Dialogs(xlDialogSaveAs).Show
ActiveWorkbook.Close
End Sub
Sub CopyFeuillesRégime()
'copier les feuille menu Régime dans un autre classeur
man = ActiveWorkbook.Path & "\man.frm"
ActiveWorkbook.VBProject.VBComponents("UserForm3").Export man
Sheets(Array(7, 9, 11, 13, 15, 17, 19, 21)).Copy
ActiveWorkbook.VBProject.VBComponents.Import (man)
man = Replace(man, "frm", "fr*")
Kill man
Application.Dialogs(xlDialogSaveAs).Show
ActiveWorkbook.Close
End Sub
J'ai rajouté la fermeture du nouveau classeur, mais tu peux l'enlever bien sûr.
Toujours zen