Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

exporter un module et userForm avec feuille

8 réponses
Avatar
Pascal
bonsoir,
ce petit bout de code et vous l'aurez compris
me copie une feuille sans soucis
seulement au sein de cette feuille j'ai un cmdbouton qui m'ouvre un userform
mon problème réside dans le fait qu'a l'export je ne sais comment introduire
mon userform ainsi qu'un module
Toute idée bienvenue

Pascal
'------------code---------------------------------
Sheets("Mafeuille").Select
Sheets("Mafeuille").Copy

ChDir ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:= _
ThisWorkbook.Path & "\TestEnvoi.xls", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
'fermeture du classeur sans sauvegarde
Workbooks("testEnvoi.xls").Close savechanges:=False

8 réponses

Avatar
Philippe.R
Bonsoir,
Une piste pourrait être d'exporter le classeur après avoir supprimé tout le
superflu :
http://frederic.sigonneau.free.fr/code/VBE/SupprComposants.txt
http://frederic.sigonneau.free.fr/code/VBE/SupprMacroParMacro.txt
http://frederic.sigonneau.free.fr/code/VBE/SupprModulesCode.txt
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Pascal" ,com> a écrit dans le message de
news:%236SdGal%
bonsoir,
ce petit bout de code et vous l'aurez compris
me copie une feuille sans soucis
seulement au sein de cette feuille j'ai un cmdbouton qui m'ouvre un
userform
mon problème réside dans le fait qu'a l'export je ne sais comment
introduire mon userform ainsi qu'un module
Toute idée bienvenue

Pascal
'------------code---------------------------------
Sheets("Mafeuille").Select
Sheets("Mafeuille").Copy

ChDir ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:= _
ThisWorkbook.Path & "TestEnvoi.xls", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:úlse, _
CreateBackup:úlse
'fermeture du classeur sans sauvegarde
Workbooks("testEnvoi.xls").Close savechanges:úlse





Avatar
michdenis
Essaie ceci :

Tu peux adapter les chemins des fichiers....

'-----------------------------------------
Sub test_Copy()

With ThisWorkbook
With .VBProject.VBComponents
With .Item("Userform1")
.Export "c:Userform1.frm"
End With
With .Item("Module1")
.Export "c:Module1.bas"
End With
End With
.Sheets("Toto").Copy
End With
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With ActiveWorkbook
With .VBProject.VBComponents
.Import "c:userform1.frm"
.Import "c:module1.bas"
End With
.SaveAs ThisWorkbook.Path & "TestEnvoi.xls"
.Close False
End With
Application.DisplayAlerts = True

Kill "c:userform1.frm": Kill "c:userform1.frx"
Kill "c:module1.bas"
End Sub
'-----------------------------------------



"Pascal" ,com> a écrit dans le message de news:
%236SdGal%
bonsoir,
ce petit bout de code et vous l'aurez compris
me copie une feuille sans soucis
seulement au sein de cette feuille j'ai un cmdbouton qui m'ouvre un userform
mon problème réside dans le fait qu'a l'export je ne sais comment introduire
mon userform ainsi qu'un module
Toute idée bienvenue

Pascal
'------------code---------------------------------
Sheets("Mafeuille").Select
Sheets("Mafeuille").Copy

ChDir ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:= _
ThisWorkbook.Path & "TestEnvoi.xls", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:úlse, _
CreateBackup:úlse
'fermeture du classeur sans sauvegarde
Workbooks("testEnvoi.xls").Close savechanges:úlse
Avatar
Pascal
hello MichDenis,
merci pour ce code
il me provoque une erreur : 1004 L'accès par programme au projet Visual
Basic n'est pas fiable
l'erreur se produit sur With.VBProject.VBCompoments
merci de ton aide
Pascal


"michdenis" a écrit dans le message de groupe de
discussion : #$ggh2l#
Essaie ceci :

Tu peux adapter les chemins des fichiers....

'-----------------------------------------
Sub test_Copy()

With ThisWorkbook
With .VBProject.VBComponents
With .Item("Userform1")
.Export "c:Userform1.frm"
End With
With .Item("Module1")
.Export "c:Module1.bas"
End With
End With
.Sheets("Toto").Copy
End With
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With ActiveWorkbook
With .VBProject.VBComponents
.Import "c:userform1.frm"
.Import "c:module1.bas"
End With
.SaveAs ThisWorkbook.Path & "TestEnvoi.xls"
.Close False
End With
Application.DisplayAlerts = True

Kill "c:userform1.frm": Kill "c:userform1.frx"
Kill "c:module1.bas"
End Sub
'-----------------------------------------



"Pascal" ,com> a écrit dans le message de news:
%236SdGal%
bonsoir,
ce petit bout de code et vous l'aurez compris
me copie une feuille sans soucis
seulement au sein de cette feuille j'ai un cmdbouton qui m'ouvre un
userform
mon problème réside dans le fait qu'a l'export je ne sais comment
introduire
mon userform ainsi qu'un module
Toute idée bienvenue

Pascal
'------------code---------------------------------
Sheets("Mafeuille").Select
Sheets("Mafeuille").Copy

ChDir ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:= _
ThisWorkbook.Path & "TestEnvoi.xls", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:úlse, _
CreateBackup:úlse
'fermeture du classeur sans sauvegarde
Workbooks("testEnvoi.xls").Close savechanges:úlse





Avatar
Pascal
hello Philippe.R,
avant de voir ta réponse et celle de MichDenis, j'avais pensé exactement la
même chose mais ne s'avait comment m'y prendre pour être efficace, merci
pour ces liens
Pascal


"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de groupe
de discussion : egdHEkl#
Bonsoir,
Une piste pourrait être d'exporter le classeur après avoir supprimé tout
le superflu :
http://frederic.sigonneau.free.fr/code/VBE/SupprComposants.txt
http://frederic.sigonneau.free.fr/code/VBE/SupprMacroParMacro.txt
http://frederic.sigonneau.free.fr/code/VBE/SupprModulesCode.txt
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Pascal" ,com> a écrit dans le message de
news:%236SdGal%
bonsoir,
ce petit bout de code et vous l'aurez compris
me copie une feuille sans soucis
seulement au sein de cette feuille j'ai un cmdbouton qui m'ouvre un
userform
mon problème réside dans le fait qu'a l'export je ne sais comment
introduire mon userform ainsi qu'un module
Toute idée bienvenue

Pascal
'------------code---------------------------------
Sheets("Mafeuille").Select
Sheets("Mafeuille").Copy

ChDir ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:= _
ThisWorkbook.Path & "TestEnvoi.xls", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:úlse,
_
CreateBackup:úlse
'fermeture du classeur sans sauvegarde
Workbooks("testEnvoi.xls").Close savechanges:úlse








Avatar
michdenis
Barre des menus de la feuille de calcul / Outils /
Macro / Sécurité / onglets -éditeurs approuvés /
Coche les 2 cases à cocher dans le bas de la fenêtre



"Pascal" ,com> a écrit dans le message de news:
%23kR43em%
hello MichDenis,
merci pour ce code
il me provoque une erreur : 1004 L'accès par programme au projet Visual
Basic n'est pas fiable
l'erreur se produit sur With.VBProject.VBCompoments
merci de ton aide
Pascal


"michdenis" a écrit dans le message de groupe de
discussion : #$ggh2l#
Essaie ceci :

Tu peux adapter les chemins des fichiers....

'-----------------------------------------
Sub test_Copy()

With ThisWorkbook
With .VBProject.VBComponents
With .Item("Userform1")
.Export "c:Userform1.frm"
End With
With .Item("Module1")
.Export "c:Module1.bas"
End With
End With
.Sheets("Toto").Copy
End With
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With ActiveWorkbook
With .VBProject.VBComponents
.Import "c:userform1.frm"
.Import "c:module1.bas"
End With
.SaveAs ThisWorkbook.Path & "TestEnvoi.xls"
.Close False
End With
Application.DisplayAlerts = True

Kill "c:userform1.frm": Kill "c:userform1.frx"
Kill "c:module1.bas"
End Sub
'-----------------------------------------



"Pascal" ,com> a écrit dans le message de news:
%236SdGal%
bonsoir,
ce petit bout de code et vous l'aurez compris
me copie une feuille sans soucis
seulement au sein de cette feuille j'ai un cmdbouton qui m'ouvre un
userform
mon problème réside dans le fait qu'a l'export je ne sais comment
introduire
mon userform ainsi qu'un module
Toute idée bienvenue

Pascal
'------------code---------------------------------
Sheets("Mafeuille").Select
Sheets("Mafeuille").Copy

ChDir ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:= _
ThisWorkbook.Path & "TestEnvoi.xls", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:úlse, _
CreateBackup:úlse
'fermeture du classeur sans sauvegarde
Workbooks("testEnvoi.xls").Close savechanges:úlse





Avatar
Pascal
Bonsoir,
J'applaudis des 2 mains cela fonctionne à présent
une autre question découle, forcement,
le fait de transporter sur un pc vierge le classeur, ces 2 "coches" le
seront toujours?
Grand merci pour ton aide
Pascal


"michdenis" a écrit dans le message de groupe de
discussion : uLhIZhm#
Barre des menus de la feuille de calcul / Outils /
Macro / Sécurité / onglets -éditeurs approuvés /
Coche les 2 cases à cocher dans le bas de la fenêtre



"Pascal" ,com> a écrit dans le message de news:
%23kR43em%
hello MichDenis,
merci pour ce code
il me provoque une erreur : 1004 L'accès par programme au projet Visual
Basic n'est pas fiable
l'erreur se produit sur With.VBProject.VBCompoments
merci de ton aide
Pascal


"michdenis" a écrit dans le message de groupe de
discussion : #$ggh2l#
Essaie ceci :

Tu peux adapter les chemins des fichiers....

'-----------------------------------------
Sub test_Copy()

With ThisWorkbook
With .VBProject.VBComponents
With .Item("Userform1")
.Export "c:Userform1.frm"
End With
With .Item("Module1")
.Export "c:Module1.bas"
End With
End With
.Sheets("Toto").Copy
End With
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With ActiveWorkbook
With .VBProject.VBComponents
.Import "c:userform1.frm"
.Import "c:module1.bas"
End With
.SaveAs ThisWorkbook.Path & "TestEnvoi.xls"
.Close False
End With
Application.DisplayAlerts = True

Kill "c:userform1.frm": Kill "c:userform1.frx"
Kill "c:module1.bas"
End Sub
'-----------------------------------------



"Pascal" ,com> a écrit dans le message de news:
%236SdGal%
bonsoir,
ce petit bout de code et vous l'aurez compris
me copie une feuille sans soucis
seulement au sein de cette feuille j'ai un cmdbouton qui m'ouvre un
userform
mon problème réside dans le fait qu'a l'export je ne sais comment
introduire
mon userform ainsi qu'un module
Toute idée bienvenue

Pascal
'------------code---------------------------------
Sheets("Mafeuille").Select
Sheets("Mafeuille").Copy

ChDir ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:= _
ThisWorkbook.Path & "TestEnvoi.xls", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:úlse,
_
CreateBackup:úlse
'fermeture du classeur sans sauvegarde
Workbooks("testEnvoi.xls").Close savechanges:úlse








Avatar
michdenis
| ces 2 "coches" le seront toujours?

Non, ce ne sont pas des caractéristiques associées
à un classeur mais à l'application Excel. Il faut donc
les cocher sur chaque PC.

Il n'y a pas de moyen de les cocher en utilisant une macro
dams Excel. Il faut utiliser un VBScript (fichier.vbs) et aller
modifier la base de registre lorsqu'excel est fermé.




"Pascal" ,com> a écrit dans le message de news:
e1WnCtm%
Bonsoir,
J'applaudis des 2 mains cela fonctionne à présent
une autre question découle, forcement,
le fait de transporter sur un pc vierge le classeur, ces 2 "coches" le
seront toujours?
Grand merci pour ton aide
Pascal


"michdenis" a écrit dans le message de groupe de
discussion : uLhIZhm#
Barre des menus de la feuille de calcul / Outils /
Macro / Sécurité / onglets -éditeurs approuvés /
Coche les 2 cases à cocher dans le bas de la fenêtre



"Pascal" ,com> a écrit dans le message de news:
%23kR43em%
hello MichDenis,
merci pour ce code
il me provoque une erreur : 1004 L'accès par programme au projet Visual
Basic n'est pas fiable
l'erreur se produit sur With.VBProject.VBCompoments
merci de ton aide
Pascal


"michdenis" a écrit dans le message de groupe de
discussion : #$ggh2l#
Essaie ceci :

Tu peux adapter les chemins des fichiers....

'-----------------------------------------
Sub test_Copy()

With ThisWorkbook
With .VBProject.VBComponents
With .Item("Userform1")
.Export "c:Userform1.frm"
End With
With .Item("Module1")
.Export "c:Module1.bas"
End With
End With
.Sheets("Toto").Copy
End With
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With ActiveWorkbook
With .VBProject.VBComponents
.Import "c:userform1.frm"
.Import "c:module1.bas"
End With
.SaveAs ThisWorkbook.Path & "TestEnvoi.xls"
.Close False
End With
Application.DisplayAlerts = True

Kill "c:userform1.frm": Kill "c:userform1.frx"
Kill "c:module1.bas"
End Sub
'-----------------------------------------



"Pascal" ,com> a écrit dans le message de news:
%236SdGal%
bonsoir,
ce petit bout de code et vous l'aurez compris
me copie une feuille sans soucis
seulement au sein de cette feuille j'ai un cmdbouton qui m'ouvre un
userform
mon problème réside dans le fait qu'a l'export je ne sais comment
introduire
mon userform ainsi qu'un module
Toute idée bienvenue

Pascal
'------------code---------------------------------
Sheets("Mafeuille").Select
Sheets("Mafeuille").Copy

ChDir ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:= _
ThisWorkbook.Path & "TestEnvoi.xls", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:úlse,
_
CreateBackup:úlse
'fermeture du classeur sans sauvegarde
Workbooks("testEnvoi.xls").Close savechanges:úlse








Avatar
Pascal
merci MichDenis
merci pour ces précisions, un peu gênante pour le nouvel utilisateur quand
même
je n'ai pas encore fait le test mais espère par contre que les Réferences
suivent bien le classeur
cordialement
Pascal

"michdenis" a écrit dans le message de groupe de
discussion : etFzJbn#
| ces 2 "coches" le seront toujours?

Non, ce ne sont pas des caractéristiques associées
à un classeur mais à l'application Excel. Il faut donc
les cocher sur chaque PC.

Il n'y a pas de moyen de les cocher en utilisant une macro
dams Excel. Il faut utiliser un VBScript (fichier.vbs) et aller
modifier la base de registre lorsqu'excel est fermé.