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

Problème: Comment sauvegarder un classeur sans ses macro

5 réponses
Avatar
galileo
Voila, je travaille sur un classeur. J'ai fait une macro qui me permet de le
sauvegarder sous un autre nom (dossiertemp.xls), mais mon problème est que je
ne veux pas sauvegarder les macros présentes.
J'ai trouvé un code, mais il me met tout le temps des erreurs et du coup je
ne sais pas trop quoi faire:

Sub extracttxt()
'

'
ActiveWorkbook.Save


' suppression de la fenetre n_dossier

Dim ThisWorkbookCode

Set ThisWorkbookCode =
Application.VBE.ActiveVBProject.VBComponents("ThisWorkbook").CodeModule

ThisWorkbookCode.DeleteLines 43, 3
' ThisWorkbookCode.DeleteLines 1, 15



' copie du fichier en fichier temporaire

ActiveWorkbook.SaveCopyAs ("C:\Documents and
Settings\xavier\Bureau\programmeexcel\auto_excel_expes2\dossiertemp.xls")


Visiblement ca bloque au niveau de "ThisWorkbookCode.DeleteLines 43, 3". Ca
me genere une erreur du style "la memoire ne peut pas etre read".

Merci

5 réponses

Avatar
anonymousA
bonjour,

extrait de la bibliothèque de programmes sur le site de Frédéric Sigonneau

Attribute VB_Name = "SaveAsSansLesMacros"

'enregistrer un classeur sous un autre nom,
'en le vidant au passage de son code
'fs, mpfe

Sub SaveAsWithoutMacros()
Dim NomSource$, CheminDest$, NomDest$
Dim VBC As Object

NomSource = "EssaiSaveAs.xls"
CheminDest = "C:WindowsTemp"
NomDest = "Essai.xls"

Workbooks(NomSource).SaveAs CheminDest & NomDest

With ActiveWorkbook.VBProject
'cette partie du code est de Laurent Longre
For Each VBC In .VBComponents
If VBC.Type = 100 Then
With VBC.CodeModule
.DeleteLines 1, .CountOfLines
.CodePane.Window.Close
End With
Else: .VBComponents.Remove VBC
End If
Next VBC
End With

Application.Quit
SendKeys "%O"

End Sub

A+


Voila, je travaille sur un classeur. J'ai fait une macro qui me permet de le
sauvegarder sous un autre nom (dossiertemp.xls), mais mon problème est que je
ne veux pas sauvegarder les macros présentes.
J'ai trouvé un code, mais il me met tout le temps des erreurs et du coup je
ne sais pas trop quoi faire:

Sub extracttxt()
'

'
ActiveWorkbook.Save


' suppression de la fenetre n_dossier

Dim ThisWorkbookCode

Set ThisWorkbookCode =
Application.VBE.ActiveVBProject.VBComponents("ThisWorkbook").CodeModule

ThisWorkbookCode.DeleteLines 43, 3
' ThisWorkbookCode.DeleteLines 1, 15



' copie du fichier en fichier temporaire

ActiveWorkbook.SaveCopyAs ("C:Documents and
SettingsxavierBureauprogrammeexcelauto_excel_expes2dossiertemp.xls")


Visiblement ca bloque au niveau de "ThisWorkbookCode.DeleteLines 43, 3". Ca
me genere une erreur du style "la memoire ne peut pas etre read".

Merci



Avatar
LSteph
Bonjour,
peut être plus simple:
mettre macro dans Perso.xls (le cas échéant affectée à un outil ou une
commande de menu)
et enregistrer l'autre classeur qui ne contient plus de macro.

lSteph

Plus simplement ouvres ton fichier pour l'enregistrer sous un autre nom
sans la macro
"galileo" a écrit dans le message de
news:
Voila, je travaille sur un classeur. J'ai fait une macro qui me permet de
le
sauvegarder sous un autre nom (dossiertemp.xls), mais mon problème est que
je
ne veux pas sauvegarder les macros présentes.
J'ai trouvé un code, mais il me met tout le temps des erreurs et du coup
je
ne sais pas trop quoi faire:

Sub extracttxt()
'

'
ActiveWorkbook.Save


' suppression de la fenetre n_dossier

Dim ThisWorkbookCode

Set ThisWorkbookCode > Application.VBE.ActiveVBProject.VBComponents("ThisWorkbook").CodeModule

ThisWorkbookCode.DeleteLines 43, 3
' ThisWorkbookCode.DeleteLines 1, 15



' copie du fichier en fichier temporaire

ActiveWorkbook.SaveCopyAs ("C:Documents and
SettingsxavierBureauprogrammeexcelauto_excel_expes2dossiertemp.xls")


Visiblement ca bloque au niveau de "ThisWorkbookCode.DeleteLines 43, 3".
Ca
me genere une erreur du style "la memoire ne peut pas etre read".

Merci



Avatar
galileo8fr
Merci pour ta réponse malheureusement j'ai deja essayé ce code que j'ai
également trouvé, mais il se trouve que ca bloque également au passage de la
ligne deleteline. Alors je ne sais pas d'ou ca vient. Je travaille sous Excel
2000.

"anonymousA" wrote:

bonjour,

extrait de la bibliothèque de programmes sur le site de Frédéric Sigonneau

Attribute VB_Name = "SaveAsSansLesMacros"

'enregistrer un classeur sous un autre nom,
'en le vidant au passage de son code
'fs, mpfe

Sub SaveAsWithoutMacros()
Dim NomSource$, CheminDest$, NomDest$
Dim VBC As Object

NomSource = "EssaiSaveAs.xls"
CheminDest = "C:WindowsTemp"
NomDest = "Essai.xls"

Workbooks(NomSource).SaveAs CheminDest & NomDest

With ActiveWorkbook.VBProject
'cette partie du code est de Laurent Longre
For Each VBC In .VBComponents
If VBC.Type = 100 Then
With VBC.CodeModule
.DeleteLines 1, .CountOfLines
.CodePane.Window.Close
End With
Else: .VBComponents.Remove VBC
End If
Next VBC
End With

Application.Quit
SendKeys "%O"

End Sub

A+


Voila, je travaille sur un classeur. J'ai fait une macro qui me permet de le
sauvegarder sous un autre nom (dossiertemp.xls), mais mon problème est que je
ne veux pas sauvegarder les macros présentes.
J'ai trouvé un code, mais il me met tout le temps des erreurs et du coup je
ne sais pas trop quoi faire:

Sub extracttxt()
'

'
ActiveWorkbook.Save


' suppression de la fenetre n_dossier

Dim ThisWorkbookCode

Set ThisWorkbookCode =
Application.VBE.ActiveVBProject.VBComponents("ThisWorkbook").CodeModule

ThisWorkbookCode.DeleteLines 43, 3
' ThisWorkbookCode.DeleteLines 1, 15



' copie du fichier en fichier temporaire

ActiveWorkbook.SaveCopyAs ("C:Documents and
SettingsxavierBureauprogrammeexcelauto_excel_expes2dossiertemp.xls")


Visiblement ca bloque au niveau de "ThisWorkbookCode.DeleteLines 43, 3". Ca
me genere une erreur du style "la memoire ne peut pas etre read".

Merci





Avatar
LSteph
Re,
Dans les paramêtres de
Outils Macros sécurité baisser le niveau:
Dans (pas sur pour la V2000)
Onglet Editeurs approuvés
Faire confiance au projet Visual Basic

lSteph

"galileo8fr" a écrit dans le message
de news:
Merci pour ta réponse malheureusement j'ai deja essayé ce code que j'ai
également trouvé, mais il se trouve que ca bloque également au passage de
la
ligne deleteline. Alors je ne sais pas d'ou ca vient. Je travaille sous
Excel
2000.

"anonymousA" wrote:

bonjour,

extrait de la bibliothèque de programmes sur le site de Frédéric
Sigonneau

Attribute VB_Name = "SaveAsSansLesMacros"

'enregistrer un classeur sous un autre nom,
'en le vidant au passage de son code
'fs, mpfe

Sub SaveAsWithoutMacros()
Dim NomSource$, CheminDest$, NomDest$
Dim VBC As Object

NomSource = "EssaiSaveAs.xls"
CheminDest = "C:WindowsTemp"
NomDest = "Essai.xls"

Workbooks(NomSource).SaveAs CheminDest & NomDest

With ActiveWorkbook.VBProject
'cette partie du code est de Laurent Longre
For Each VBC In .VBComponents
If VBC.Type = 100 Then
With VBC.CodeModule
.DeleteLines 1, .CountOfLines
.CodePane.Window.Close
End With
Else: .VBComponents.Remove VBC
End If
Next VBC
End With

Application.Quit
SendKeys "%O"

End Sub

A+


Voila, je travaille sur un classeur. J'ai fait une macro qui me permet
de le
sauvegarder sous un autre nom (dossiertemp.xls), mais mon problème est
que je
ne veux pas sauvegarder les macros présentes.
J'ai trouvé un code, mais il me met tout le temps des erreurs et du
coup je
ne sais pas trop quoi faire:

Sub extracttxt()
'

'
ActiveWorkbook.Save


' suppression de la fenetre n_dossier

Dim ThisWorkbookCode

Set ThisWorkbookCode >> > Application.VBE.ActiveVBProject.VBComponents("ThisWorkbook").CodeModule

ThisWorkbookCode.DeleteLines 43, 3
' ThisWorkbookCode.DeleteLines 1, 15



' copie du fichier en fichier temporaire

ActiveWorkbook.SaveCopyAs ("C:Documents and
SettingsxavierBureauprogrammeexcelauto_excel_expes2dossiertemp.xls")


Visiblement ca bloque au niveau de "ThisWorkbookCode.DeleteLines 43,
3". Ca
me genere une erreur du style "la memoire ne peut pas etre read".

Merci







Avatar
galileo8fr
Je l'ai deja fait et visiblement ce n'est pas ca puisque mon probleme
persiste. Peut etre que j'utilise mal la commande deletelines?

"LSteph" wrote:

Re,
Dans les paramêtres de
Outils Macros sécurité baisser le niveau:
Dans (pas sur pour la V2000)
Onglet Editeurs approuvés
Faire confiance au projet Visual Basic

lSteph

"galileo8fr" a écrit dans le message
de news:
Merci pour ta réponse malheureusement j'ai deja essayé ce code que j'ai
également trouvé, mais il se trouve que ca bloque également au passage de
la
ligne deleteline. Alors je ne sais pas d'ou ca vient. Je travaille sous
Excel
2000.

"anonymousA" wrote:

bonjour,

extrait de la bibliothèque de programmes sur le site de Frédéric
Sigonneau

Attribute VB_Name = "SaveAsSansLesMacros"

'enregistrer un classeur sous un autre nom,
'en le vidant au passage de son code
'fs, mpfe

Sub SaveAsWithoutMacros()
Dim NomSource$, CheminDest$, NomDest$
Dim VBC As Object

NomSource = "EssaiSaveAs.xls"
CheminDest = "C:WindowsTemp"
NomDest = "Essai.xls"

Workbooks(NomSource).SaveAs CheminDest & NomDest

With ActiveWorkbook.VBProject
'cette partie du code est de Laurent Longre
For Each VBC In .VBComponents
If VBC.Type = 100 Then
With VBC.CodeModule
.DeleteLines 1, .CountOfLines
.CodePane.Window.Close
End With
Else: .VBComponents.Remove VBC
End If
Next VBC
End With

Application.Quit
SendKeys "%O"

End Sub

A+


Voila, je travaille sur un classeur. J'ai fait une macro qui me permet
de le
sauvegarder sous un autre nom (dossiertemp.xls), mais mon problème est
que je
ne veux pas sauvegarder les macros présentes.
J'ai trouvé un code, mais il me met tout le temps des erreurs et du
coup je
ne sais pas trop quoi faire:

Sub extracttxt()
'

'
ActiveWorkbook.Save


' suppression de la fenetre n_dossier

Dim ThisWorkbookCode

Set ThisWorkbookCode > >> > Application.VBE.ActiveVBProject.VBComponents("ThisWorkbook").CodeModule

ThisWorkbookCode.DeleteLines 43, 3
' ThisWorkbookCode.DeleteLines 1, 15



' copie du fichier en fichier temporaire

ActiveWorkbook.SaveCopyAs ("C:Documents and
SettingsxavierBureauprogrammeexcelauto_excel_expes2dossiertemp.xls")


Visiblement ca bloque au niveau de "ThisWorkbookCode.DeleteLines 43,
3". Ca
me genere une erreur du style "la memoire ne peut pas etre read".

Merci