Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Enregistrement d'un ficher en otant les macro

0 views
Skip to first unread message

Hubert Dubois

unread,
May 3, 2004, 6:14:10 PM5/3/04
to
Hello,
j'aimerais enregister via une macro mon fichier excel
mais sans les macros qu'il contient (donc juste la
feuille 1 par exemple). Mais je n'y arrive pas. Je ne
trouve pas la commande pour lui dire de ne pas enregister
les macros.

J'utilise ça actuellement:
"ActiveSheet.SaveAs 'C:\Projet.xls'"

Auriez-vous une solution à mon problème ?

Merci d'avance ;)

michdenis

unread,
May 3, 2004, 7:12:50 PM5/3/04
to
Bonjour Hubert,

Il n'est pas possible d'enregistrer seulement une feuille comme étant un nouveau classeur.

La procédure va faire le travail que tu demandes.
Tout le code situé dans la feuille copiée sera supprimé.

'----------------------------
Sub EnregistrerFeuille1()

Dim Wk As Workbook, Nom As String
Nom = ThisWorkbook.Name
Application.ScreenUpdating = False

'Adapte le nom de la feuille à sauvegarder
With Worksheets("Feuil1")
.Copy
End With

'Supprime tout le code dans le
'code de la feuille 1
Set Wk = ActiveWorkbook
With Wk.VBProject.VBComponents _
(Wk.Worksheets(1).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With

'Sauvegarde de la feuille dans un
'nouveau classeur
Wk.SaveAs "C:\Projet.xls"

'Pour fermer le Nouveau classeur au besoin
Wk.Close False

Workbooks(Nom).Activate
Set Wk = Nothing

End Sub
'----------------------------


Salutations!

"Hubert Dubois" <anon...@discussions.microsoft.com> a écrit dans le message de
news:7a8901c4315b$f5a19990$a401...@phx.gbl...

Hubert Dubois

unread,
May 4, 2004, 3:01:57 AM5/4/04
to
Bonjour,
je vous remercie énormement pour votre aide !

Mais pourrais-je vous solliciter encore un petit moment ?

J'ai une erreur lors de l'éxecution de cette partie de
code "Set Wk = ActiveWorkbook


With Wk.VBProject.VBComponents _
(Wk.Worksheets(1).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With"

Petite précision, mon code se trouve dans "ThisWorkbook".

Merci!

Meilleures salutations.

Hubert Dubois

michdenis

unread,
May 4, 2004, 7:54:17 AM5/4/04
to
Bonjour Hubert,

Sous excel 2002, la procédure fonctionne très bien.


"Petite précision, mon code se trouve dans "ThisWorkbook"."

Écoute ta question demandait d'enregistrer la feuille choisie comme faisant d'un nouveau classeur et de faire
disparaître le code dans le module feuille choisie ... ce que fait la macro. Dans le nouveau Classeur qui est généré à
partir de la feuille choisie, il ne devrait pas y avoir l'ombre d'un début de code dans le ThisWorkbook puisque c'est un
nouveau classeur qui est créé.

Dans la procédure, tu n'as qu'à choisir la feuille désirée dans le code suivant :

'Adapte le nom de la feuille à sauvegarder
With Worksheets("Feuil1")
.Copy
End With

Salutations!

"Hubert Dubois" <anon...@discussions.microsoft.com> a écrit dans le message de

news:7ecc01c431a5$b05a76a0$a101...@phx.gbl...

Hubert Dubois

unread,
May 4, 2004, 9:29:38 AM5/4/04
to
Bonjour,

pourtant ça me renvoie une erreur de ce type: propriété ou
methode incorrect sur la ligne
" .CodeModule.DeleteLines 1, .CountOfLines"

Je comprend pas le problème là.

michdenis

unread,
May 4, 2004, 10:19:21 AM5/4/04
to
Bonjour Hubert,

Je travaille à partir d'excel 2002 ... Quelle ta version ?

Attention à la PRÉSENTATION du texte de la macro :


With Wk.VBProject.VBComponents _
(Wk.Worksheets(1).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With

ce qui précède n'est pas l'équivalent de ceci écrit sur la même ligne

" .CodeModule.DeleteLines 1, .CountOfLines"


Faut quand même prendre le temps de copier la procédure comme il se doit !


Salutations!

"Hubert Dubois" <anon...@discussions.microsoft.com> a écrit dans le message de

news:7f2301c431db$d94c4670$a401...@phx.gbl...

Hubert Dubois

unread,
May 4, 2004, 11:13:52 AM5/4/04
to
Hello,
j'ai bien excel 2002 et j'avais recopié avec les retours à
la ligne correct.

Je sais pas ce qui se passe. Enfin merci quand même et
bonne soirée.

FxM

unread,
May 4, 2004, 4:55:03 PM5/4/04
to
Bonsoir,

Dans le message n°6 du fil :
http://www.google.fr/groups?hl=fr&lr=&ie=UTF-8&oe=UTF-8&threadm=%23i2eV2LIEHA.364%40TK2MSFTNGP11.phx.gbl&rnum=3&prev=/groups%3Fas_q%3Dcodemodule%2520ThisWorkbook%26ie%3DUTF-8%26oe%3DUTF-8%26as_ugroup%3D*.fr.excel%26as_scoring%3Dd%26lr%3D%26num%3D100%26hl%3Dfr

Sub transfert_4()
'plein d'actions diverses et variées telles que sauvegarde du
'fichier original puis ...

Application.Calculation = xlCalculationAutomatic
On Error Resume Next
With ActiveWorkbook.VBProject. _
VBComponents("ThisWorkbook").CodeModule
.deleteLines 1, .CountOfLines
.CodePane.Window.Close
End With
End Sub

@+
FxM

Hubert Dubois

unread,
May 5, 2004, 3:04:17 AM5/5/04
to
Merci tout le monde, c'était en fait un problème de
sécurité sous excel !
0 new messages