Bonjour,
Je souhaite programmer une sauvegarde d'un document Excel en supprimant dans
le même temps les macros. J'utilise our cela un code extrait de la
bibliothèque de programmes de Frédéric Sogonneau :
Sub Sauv()
Dim NomSource As String, CheminDest As String, NomDest As String
Dim VBC As Object
NomSource = ActiveWorkbook.Name
CheminDest = "E:\reporting entretien\essai\"
NomDest = InputBox("Entrez le nom du fichier de sauvegarde :", "Sauvegarde
des données")
NomDest = NomDest & ".xls"
Workbooks(NomSource).SaveAs CheminDest & NomDest
With ActiveWorkbook.VBProject
For Each VBC In .VBComponents
If VBC.Type = 100 Then
With VBC.CodeModule
.Deletelines 1, .CountOfLines
.CodePane.Windows.Close
End With
Else: .VBComponents.Remove VBC
End If
Next VBC
End With
Application.Quit
SendKeys "%O"
End Sub
Lors de l'exécution, le programme coince sur la ligne
.Deletelines 1, .CountOfLines
et m'affiche le message suivant :
Erreur d'exécution '438' :
Propriété ou méthode non gérée par cet objet
Ai-je oublié quelque chose ?
Merci pour votre aide
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Bonjour Philip,
Tu appelles "effacerLecode" et il supprime tous les modules, formulaires et toutes les lignes de code dans les feuilles modules d'un seul coup. !
'------------------------------- Sub EffacerLeCode()
SupprimeToutCodeEtFormulaire ThisWorkbook.Name
End Sub '-------------------------------
Sub SupprimeToutCodeEtFormulaire(NomClasseur As String)
Dim VBComp As Object Dim VBComps As Object
Set VBComps = Workbooks(NomClasseur).VBProject.VBComponents
For Each VBComp In VBComps Select Case VBComp.Type Case 100 With VBComp.CodeModule .DeleteLines 1, .CountOfLines End With Case Else VBComps.Remove VBComp End Select Next VBComp
End Sub '-------------------------------
Salutations!
"philip" a écrit dans le message de news:
Bonjour, Je souhaite programmer une sauvegarde d'un document Excel en supprimant dans le même temps les macros. J'utilise our cela un code extrait de la bibliothèque de programmes de Frédéric Sogonneau : Sub Sauv() Dim NomSource As String, CheminDest As String, NomDest As String Dim VBC As Object
NomSource = ActiveWorkbook.Name CheminDest = "E:reporting entretienessai" NomDest = InputBox("Entrez le nom du fichier de sauvegarde :", "Sauvegarde des données") NomDest = NomDest & ".xls" Workbooks(NomSource).SaveAs CheminDest & NomDest With ActiveWorkbook.VBProject For Each VBC In .VBComponents If VBC.Type = 100 Then With VBC.CodeModule .Deletelines 1, .CountOfLines .CodePane.Windows.Close End With Else: .VBComponents.Remove VBC End If Next VBC End With Application.Quit SendKeys "%O" End Sub
Lors de l'exécution, le programme coince sur la ligne .Deletelines 1, .CountOfLines et m'affiche le message suivant : Erreur d'exécution '438' : Propriété ou méthode non gérée par cet objet
Ai-je oublié quelque chose ? Merci pour votre aide
Bonjour Philip,
Tu appelles "effacerLecode" et il supprime tous les modules, formulaires et toutes les lignes de code dans les feuilles
modules d'un seul coup. !
'-------------------------------
Sub EffacerLeCode()
SupprimeToutCodeEtFormulaire ThisWorkbook.Name
End Sub
'-------------------------------
Sub SupprimeToutCodeEtFormulaire(NomClasseur As String)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks(NomClasseur).VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VBComps.Remove VBComp
End Select
Next VBComp
End Sub
'-------------------------------
Salutations!
"philip" <philip@discussions.microsoft.com> a écrit dans le message de news:
E3406259-D190-4589-9ED6-DB1722A79077@microsoft.com...
Bonjour,
Je souhaite programmer une sauvegarde d'un document Excel en supprimant dans
le même temps les macros. J'utilise our cela un code extrait de la
bibliothèque de programmes de Frédéric Sogonneau :
Sub Sauv()
Dim NomSource As String, CheminDest As String, NomDest As String
Dim VBC As Object
NomSource = ActiveWorkbook.Name
CheminDest = "E:reporting entretienessai"
NomDest = InputBox("Entrez le nom du fichier de sauvegarde :", "Sauvegarde
des données")
NomDest = NomDest & ".xls"
Workbooks(NomSource).SaveAs CheminDest & NomDest
With ActiveWorkbook.VBProject
For Each VBC In .VBComponents
If VBC.Type = 100 Then
With VBC.CodeModule
.Deletelines 1, .CountOfLines
.CodePane.Windows.Close
End With
Else: .VBComponents.Remove VBC
End If
Next VBC
End With
Application.Quit
SendKeys "%O"
End Sub
Lors de l'exécution, le programme coince sur la ligne
.Deletelines 1, .CountOfLines
et m'affiche le message suivant :
Erreur d'exécution '438' :
Propriété ou méthode non gérée par cet objet
Ai-je oublié quelque chose ?
Merci pour votre aide
Tu appelles "effacerLecode" et il supprime tous les modules, formulaires et toutes les lignes de code dans les feuilles modules d'un seul coup. !
'------------------------------- Sub EffacerLeCode()
SupprimeToutCodeEtFormulaire ThisWorkbook.Name
End Sub '-------------------------------
Sub SupprimeToutCodeEtFormulaire(NomClasseur As String)
Dim VBComp As Object Dim VBComps As Object
Set VBComps = Workbooks(NomClasseur).VBProject.VBComponents
For Each VBComp In VBComps Select Case VBComp.Type Case 100 With VBComp.CodeModule .DeleteLines 1, .CountOfLines End With Case Else VBComps.Remove VBComp End Select Next VBComp
End Sub '-------------------------------
Salutations!
"philip" a écrit dans le message de news:
Bonjour, Je souhaite programmer une sauvegarde d'un document Excel en supprimant dans le même temps les macros. J'utilise our cela un code extrait de la bibliothèque de programmes de Frédéric Sogonneau : Sub Sauv() Dim NomSource As String, CheminDest As String, NomDest As String Dim VBC As Object
NomSource = ActiveWorkbook.Name CheminDest = "E:reporting entretienessai" NomDest = InputBox("Entrez le nom du fichier de sauvegarde :", "Sauvegarde des données") NomDest = NomDest & ".xls" Workbooks(NomSource).SaveAs CheminDest & NomDest With ActiveWorkbook.VBProject For Each VBC In .VBComponents If VBC.Type = 100 Then With VBC.CodeModule .Deletelines 1, .CountOfLines .CodePane.Windows.Close End With Else: .VBComponents.Remove VBC End If Next VBC End With Application.Quit SendKeys "%O" End Sub
Lors de l'exécution, le programme coince sur la ligne .Deletelines 1, .CountOfLines et m'affiche le message suivant : Erreur d'exécution '438' : Propriété ou méthode non gérée par cet objet
Ai-je oublié quelque chose ? Merci pour votre aide
papou
Bonjour En théorie cela devrait fonctionner ! Est-ce que tu lances bien cette procédure à partir d'Excel et non pas à partir de l'éditeur VB ? Eventuellement ? met en commentaire la ligne .CodePane.Windows.Close
Cordialement Pascal
"philip" a écrit dans le message de news:
Bonjour, Je souhaite programmer une sauvegarde d'un document Excel en supprimant dans
le même temps les macros. J'utilise our cela un code extrait de la bibliothèque de programmes de Frédéric Sogonneau : Sub Sauv() Dim NomSource As String, CheminDest As String, NomDest As String Dim VBC As Object
NomSource = ActiveWorkbook.Name CheminDest = "E:reporting entretienessai" NomDest = InputBox("Entrez le nom du fichier de sauvegarde :", "Sauvegarde des données") NomDest = NomDest & ".xls" Workbooks(NomSource).SaveAs CheminDest & NomDest With ActiveWorkbook.VBProject For Each VBC In .VBComponents If VBC.Type = 100 Then With VBC.CodeModule .Deletelines 1, .CountOfLines .CodePane.Windows.Close End With Else: .VBComponents.Remove VBC End If Next VBC End With Application.Quit SendKeys "%O" End Sub
Lors de l'exécution, le programme coince sur la ligne .Deletelines 1, .CountOfLines et m'affiche le message suivant : Erreur d'exécution '438' : Propriété ou méthode non gérée par cet objet
Ai-je oublié quelque chose ? Merci pour votre aide
Bonjour
En théorie cela devrait fonctionner !
Est-ce que tu lances bien cette procédure à partir d'Excel et non pas à
partir de l'éditeur VB ?
Eventuellement ? met en commentaire la ligne
.CodePane.Windows.Close
Cordialement
Pascal
"philip" <philip@discussions.microsoft.com> a écrit dans le message de
news:E3406259-D190-4589-9ED6-DB1722A79077@microsoft.com...
Bonjour,
Je souhaite programmer une sauvegarde d'un document Excel en supprimant
dans
le même temps les macros. J'utilise our cela un code extrait de la
bibliothèque de programmes de Frédéric Sogonneau :
Sub Sauv()
Dim NomSource As String, CheminDest As String, NomDest As String
Dim VBC As Object
NomSource = ActiveWorkbook.Name
CheminDest = "E:reporting entretienessai"
NomDest = InputBox("Entrez le nom du fichier de sauvegarde :", "Sauvegarde
des données")
NomDest = NomDest & ".xls"
Workbooks(NomSource).SaveAs CheminDest & NomDest
With ActiveWorkbook.VBProject
For Each VBC In .VBComponents
If VBC.Type = 100 Then
With VBC.CodeModule
.Deletelines 1, .CountOfLines
.CodePane.Windows.Close
End With
Else: .VBComponents.Remove VBC
End If
Next VBC
End With
Application.Quit
SendKeys "%O"
End Sub
Lors de l'exécution, le programme coince sur la ligne
.Deletelines 1, .CountOfLines
et m'affiche le message suivant :
Erreur d'exécution '438' :
Propriété ou méthode non gérée par cet objet
Ai-je oublié quelque chose ?
Merci pour votre aide
Bonjour En théorie cela devrait fonctionner ! Est-ce que tu lances bien cette procédure à partir d'Excel et non pas à partir de l'éditeur VB ? Eventuellement ? met en commentaire la ligne .CodePane.Windows.Close
Cordialement Pascal
"philip" a écrit dans le message de news:
Bonjour, Je souhaite programmer une sauvegarde d'un document Excel en supprimant dans
le même temps les macros. J'utilise our cela un code extrait de la bibliothèque de programmes de Frédéric Sogonneau : Sub Sauv() Dim NomSource As String, CheminDest As String, NomDest As String Dim VBC As Object
NomSource = ActiveWorkbook.Name CheminDest = "E:reporting entretienessai" NomDest = InputBox("Entrez le nom du fichier de sauvegarde :", "Sauvegarde des données") NomDest = NomDest & ".xls" Workbooks(NomSource).SaveAs CheminDest & NomDest With ActiveWorkbook.VBProject For Each VBC In .VBComponents If VBC.Type = 100 Then With VBC.CodeModule .Deletelines 1, .CountOfLines .CodePane.Windows.Close End With Else: .VBComponents.Remove VBC End If Next VBC End With Application.Quit SendKeys "%O" End Sub
Lors de l'exécution, le programme coince sur la ligne .Deletelines 1, .CountOfLines et m'affiche le message suivant : Erreur d'exécution '438' : Propriété ou méthode non gérée par cet objet
Ai-je oublié quelque chose ? Merci pour votre aide