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

Exporter un userform

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 !

dionys0s

XLDnaute Impliqué
Bonsoir le forum


j'ai ce code (trouvé sur http://www.vbfrance.com grâce à James 007) que j'ai adapté à ma macro et qui fonctionne très bien :

Code:
 ' Dimension variables
   Dim strCode As String
   Dim vbCom As VBComponent
   Dim modObj As Object

 ' Set object to the module you want to export.
   Set modObj = _
      Application.VBE.ActiveVBProject.VBComponents.Item("Module4")
 ' Place code in a string.
   strCode = modObj.CodeModule.Lines(1, modObj.CodeModule.CountOfLines)
 ' Create new workbook.
   ActiveSheet.Copy
 ' Create a new module in workbook.
   Application.VBE.ActiveVBProject.VBComponents.Add (vbext_ct_StdModule)
 ' Add code to new module from string variable.
   Application.VBE.ActiveVBProject.VBComponents.Item("Module1") _
      .CodeModule.AddFromString (strCode)

En gros, je copie un module du classeur à partir duquel est lancée la procédure dans un nouveau classeur. C'est tip top youpi ça fonctionne. Mais je n'arrive pas à l'adapter pour qu'il exporte un userform en plus du module concerné (le Module4). Je pense qu'il n'y a pas grand chose à rajouter, mais je ne connais absolument pas les codes, et je n'ai rien trouvé sur la FAQ de excel.developpez.com

Merci d'avance pour votre aide
 
Re : Exporter un userform

Bonsoir


Voici de quoi t'aider
Code:
Sub ExporterTousLesUserforms()[COLOR=Green] [URL="http://www.developpez.net/forums/d181724/logiciels/microsoft-office/general-vba/exporter-userform-projet/#post1165799"]'[/URL]selon SilkyRoad[/COLOR]
Dim LaForm
    For Each LaForm In ThisWorkbook.VBProject.VBComponents
        'MsgBox LaForm.Name
        If LaForm.Type = 3 Then ThisWorkbook.VBProject.VBComponents(LaForm.Name).Export "D:\xls\" & LaForm.Name & ".frm"
    Next
End Sub
 
Dernière édition:
Re : Exporter un userform

Merci beaucoup Staple1600. Tu as raison pour le fil, mais je me suis dit que pour la recherche sur le forum, c'était mieux de les séparer.

Merci pour le code je regarde ça de suite
 
Re : Exporter un userform

Euh par contre j'ai l'impression que ton code sert à exporter le userform dans un répertoire windows non ? Moi ce serait pour l'exporter dans le fichier créé par mon
Code:
activesheet.copy

c'est grave docteur ?
 
Re : Exporter un userform

ReBonsoir

dyonysOs
Voici de quoi t'aider
voulait dire pour moi: "Voici un début de piste"

•) Pour que cela t'incline à tester, modifier, tester de nouveau
•) à faire de nouvelles recherches à propos de ThisWorkbook.VBProject.VBComponents
(sur le forum et/ou sur le net...)

EDITION: Mes nocturnes salutations Herr Kjin 😉
 
Dernière édition:
Re : Exporter un userform

Bonsoir, salutations M'sieur Staple
Exporte le formulaire dans un fichier temporaire puis le réimporte dans le nouveau classeur
Code:
Sub CopieForm()
Dim pForm As String, wbkS As Workbook, wbkD As Workbook
pForm = "C:\...\Form.frm" 'à adapter
Set wbkS = ThisWorkbook
Set wbkD = Workbooks.Add
With wbkS
    .VBProject.VBComponents("Userform1").Export pForm
End With
With wbkD
    .VBProject.VBComponents.Import pForm
End With
Kill pForm
End Sub
A+
kjin
 
Re : Exporter un userform


Autant pour moi alors. En tout cas merci pour le coup de pouce.

Kjin merci beaucoup pour le code. J'essaie ça demain matin.
 
Re : Exporter un userform


En fait j'ai essayé ce soir. Ca marche très bien c'est super merci beaucoup.
Ceci dit il ne m'a pas supprimé le userform à la fin. J'ai du faire une erreur quelque part.

Dernière question. En remplaçant "Set wbkD = Workbooks.Add" par "ActiveSheet.Copy" la macro plante c'est normal ?
 
Re : Exporter un userform

Bonsoir,
Ceci dit il ne m'a pas supprimé le userform à la fin. J'ai du faire une erreur quelque part.
Le fichier frm ? Ca m'étonne
Par contre, il est vrai que j'ai oublié le frx créé automatiquement lors de l'export 🙄
Code:
Sub CopieForm()
Dim pFld$, pForm$, wbkS As Workbook, wbkD As Workbook
pFld = [I][B][COLOR="Blue"]"C:\...\"[/COLOR][/B][/I] [I]'à adapter-ne pas oublier le dernier anti-slash[/I]
pForm = pFld & "Form.frm"
pFrx = pFld & "Form.frx"
Set wbkS = ThisWorkbook
wbkS.Sheets([I][B][COLOR="Blue"]"Tartempion"[/COLOR][/B][/I]).Copy [I]'à adapter[/I]
Set wbkD = ActiveWorkbook
With wbkS
    .VBProject.VBComponents([B][I][COLOR="Blue"]"Userform1"[/COLOR][/I][/B]).Export pForm [I]'à adapter[/I]
End With
With wbkD
    .VBProject.VBComponents.Import pForm
End With
Kill pForm
Kill pFrx
End Sub
A+
kjin
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…