bonjour,
j'ai créer ce code qui fonctionne, la question : est il possible de coder plus efficacement ? merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 Private Sub CommandButton6_Click() 'Importe un Form d'un autre Workbook '---------------------------------------------- 'Exporte un form de ce book "C1.xlsm" dans le sub folder "\XL_Objet\" de ce book '---------------------------------------------- FolderPath = Application.ActiveWorkbook.Path & "\XL_Objet\" Set fs = CreateObject("Scripting.FileSystemObject") If Not fs.FolderExists(FolderPath) Then fs.CreateFolder (FolderPath) '---------------------------------------------- 'l'objet peut etre exporté sous un autre nom ObjetVBComponentsName = "Form_TEST_Export" ObjetVBComponentsNameNew = "Form_TEST_Export.frm" 'effacer (ou ne pas exporter) If fs.FileExists(FolderPath & ObjetVBComponentsNameNew) Then fs.DeleteFile (FolderPath & ObjetVBComponentsNameNew) '---------------------------------------------- Workbooks.Open (ActiveWorkbook.Path & "\C1.xlsm") Workbooks("C1.xlsm").VBProject.VBComponents(ObjetVBComponentsName).Export (FolderPath & ObjetVBComponentsNameNew) Workbooks("C1.xlsm").Close '---------------------------------------------- On Error GoTo ErrorGestion '---------------------------------------------- 'Importe un fichier Form.frm '---------------------------------------------- ActiveWorkbook.VBProject.VBComponents.Import (FolderPath & ObjetVBComponentsNameNew) '---------------------------------------------- Exit Sub 'Routine de gestion d'erreur ErrorGestion: Select Case Err.Number Case 60061 OldNumber = OldNumber + 1 For Each vbc In ActiveWorkbook.VBProject.VBComponents Do While vbc.Name = ObjetVBComponentsName & "_Old_" & OldNumber OldNumber = OldNumber + 1 Loop Next 'RenameVBComponent ActiveWorkbook.VBProject.VBComponents(ObjetVBComponentsName).Name = ObjetVBComponentsName & "_Old_" & OldNumber ActiveWorkbook.VBProject.VBComponents.Import (FolderPath & ObjetVBComponentsNameNew) Case 50132, 50135 Resume Next End Select End Sub
Partager