Enregistrement d'un ficher en otant les macro

Le
Hubert Dubois
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 problme ?

Merci d'avance ;)
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #1336807
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" news:7a8901c4315b$f5a19990$
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 ;)
Hubert Dubois
Le #1336777
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
Le #1336767
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" news:7ecc01c431a5$b05a76a0$
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
Hubert Dubois
Le #1336753
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
Le #1336732
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" news:7f2301c431db$d94c4670$
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à.
Hubert Dubois
Le #1333161
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
Le #1336666
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 wrote:

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.


Publicité
Poster une réponse
Anonyme