Exporter un userform

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
 

Staple1600

XLDnaute Barbatruc
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:

dionys0s

XLDnaute Impliqué
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 ?
 

Staple1600

XLDnaute Barbatruc
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:

kjin

XLDnaute Barbatruc
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
 

dionys0s

XLDnaute Impliqué
Re : Exporter un userform

ReBonsoir

dyonysOs
voulait dire pour moi: "Voici un début de 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...)

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

Kjin merci beaucoup pour le code. J'essaie ça demain matin.
 

dionys0s

XLDnaute Impliqué
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

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 ?
 

kjin

XLDnaute Barbatruc
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 :rolleyes:
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
 

Discussions similaires

Statistiques des forums

Discussions
312 758
Messages
2 091 787
Membres
105 074
dernier inscrit
JPATOUNE