effacer le code vba d'un classeur

Le
claude
bonjour à tous
depuis mon classeur, je fais une copie et j'enregistre
Est-il possible, par une macro, d'enlever tout le code vba existant dans
cette copie avant de l'enregistrer ?
merci par avance
claude
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #4481171
bonjour Claude,


Sub SupprimeToutCodeEtFormulaire()

Dim VBComp As Object, VBComps As Object
Dim nomClasseur As String, Nom2 As String


nomClasseur InputBox("Nom du classeur dont on veut" _
& vbCrLf & "effacer toutes les macros et tous les formulaires
(UserForms)?)" _
& vbCrLf & "Format: monClasseur.xls" _
& vbCrLf & "Laisser en blanc pour quitter")


If nomClasseur "" Then Exit Sub


Do While Nom2 <> nomClasseur
Nom2 InputBox("Confirmez le nom du fichier svp" _
& vbCrLf & "Laissez en blanc pour quitter")
If nomClasseur "" Then Exit Sub
Loop


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
End Sub ' idée original de papou

isabelle




bonjour à tous
depuis mon classeur, je fais une copie et j'enregistre
Est-il possible, par une macro, d'enlever tout le code vba existant dans
cette copie avant de l'enregistrer ?
merci par avance
claude




claude
Le #4481031
bonjour Isabelle et merci
quand j'exécute la macro, sur la ligne
Set VBComps=Workbooks(nomClasseur).VBProject.VBComponents
j'obtiens une erreur 1004
"l'accès par programme au projet Visual Basic n'est pas fiable"
j'ai bien chargé la bibliothèque Microsoft Visual Basic for Applications
Extensibility 5.3
qu'en penses-tu ?
merci d'avance
claude




"isabelle" a écrit dans le message de news:

bonjour Claude,


Sub SupprimeToutCodeEtFormulaire()

Dim VBComp As Object, VBComps As Object
Dim nomClasseur As String, Nom2 As String


nomClasseur InputBox("Nom du classeur dont on veut" _
& vbCrLf & "effacer toutes les macros et tous les formulaires
(UserForms)?)" _
& vbCrLf & "Format: monClasseur.xls" _
& vbCrLf & "Laisser en blanc pour quitter")


If nomClasseur "" Then Exit Sub


Do While Nom2 <> nomClasseur
Nom2 InputBox("Confirmez le nom du fichier svp" _
& vbCrLf & "Laissez en blanc pour quitter")
If nomClasseur "" Then Exit Sub
Loop


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
End Sub ' idée original de papou

isabelle




bonjour à tous
depuis mon classeur, je fais une copie et j'enregistre
Est-il possible, par une macro, d'enlever tout le code vba existant dans
cette copie avant de l'enregistrer ?
merci par avance
claude




LSteph
Le #4480981
Bonjour,

Dans excel, menu outils macro
dérouler le menu pour acceder à l'item
sécurité
(dans l'onglet niveau mettre plutôt moyen qu'élevé)
dans l'onglet Editeurs Approuvés en bas
Faire confiance au projet.(Cocher cette case)

Cordialement.

lSteph

bonjour Isabelle et merci
quand j'exécute la macro, sur la ligne
Set VBComps=Workbooks(nomClasseur).VBProject.VBComponents
j'obtiens une erreur 1004
"l'accès par programme au projet Visual Basic n'est pas fiable"
j'ai bien chargé la bibliothèque Microsoft Visual Basic for Applications
Extensibility 5.3
qu'en penses-tu ?
merci d'avance
claude




"isabelle" a écrit dans le message de news:

bonjour Claude,


Sub SupprimeToutCodeEtFormulaire()

Dim VBComp As Object, VBComps As Object
Dim nomClasseur As String, Nom2 As String


nomClasseur InputBox("Nom du classeur dont on veut" _
& vbCrLf & "effacer toutes les macros et tous les formulaires
(UserForms)?)" _
& vbCrLf & "Format: monClasseur.xls" _
& vbCrLf & "Laisser en blanc pour quitter")


If nomClasseur "" Then Exit Sub


Do While Nom2 <> nomClasseur
Nom2 InputBox("Confirmez le nom du fichier svp" _
& vbCrLf & "Laissez en blanc pour quitter")
If nomClasseur "" Then Exit Sub
Loop


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
End Sub ' idée original de papou

isabelle




bonjour à tous
depuis mon classeur, je fais une copie et j'enregistre
Est-il possible, par une macro, d'enlever tout le code vba existant dans
cette copie avant de l'enregistrer ?
merci par avance
claude








claude
Le #4480961
bonjour lSteph
merci du tuyau
effectivement, plus de message d'erreurs : mais rien ne se produit: aucune
ligne détruite ni aucun module effacé
j'ai exécuté la macro plusieurs fois et ... rien
???
j'ai dû sauter quelque chose
;-(
claude


"LSteph" %23t%
Bonjour,

Dans excel, menu outils macro
dérouler le menu pour acceder à l'item
sécurité
(dans l'onglet niveau mettre plutôt moyen qu'élevé)
dans l'onglet Editeurs Approuvés en bas
Faire confiance au projet.(Cocher cette case)

Cordialement.

lSteph

bonjour Isabelle et merci
quand j'exécute la macro, sur la ligne
Set VBComps=Workbooks(nomClasseur).VBProject.VBComponents
j'obtiens une erreur 1004
"l'accès par programme au projet Visual Basic n'est pas fiable"
j'ai bien chargé la bibliothèque Microsoft Visual Basic for Applications
Extensibility 5.3
qu'en penses-tu ?
merci d'avance
claude




"isabelle" a écrit dans le message de news:

bonjour Claude,


Sub SupprimeToutCodeEtFormulaire()

Dim VBComp As Object, VBComps As Object
Dim nomClasseur As String, Nom2 As String


nomClasseur InputBox("Nom du classeur dont on veut" _
& vbCrLf & "effacer toutes les macros et tous les formulaires
(UserForms)?)" _
& vbCrLf & "Format: monClasseur.xls" _
& vbCrLf & "Laisser en blanc pour quitter")


If nomClasseur "" Then Exit Sub


Do While Nom2 <> nomClasseur
Nom2 InputBox("Confirmez le nom du fichier svp" _
& vbCrLf & "Laissez en blanc pour quitter")
If nomClasseur "" Then Exit Sub
Loop


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
End Sub ' idée original de papou

isabelle




bonjour à tous
depuis mon classeur, je fais une copie et j'enregistre
Est-il possible, par une macro, d'enlever tout le code vba existant
dans cette copie avant de l'enregistrer ?
merci par avance
claude









LSteph
Le #4480331
Bonsoir,
Il suffit ensuite d'executer la macro donnée par Isabelle et
de fournir le nom de classeur.
Vérifie qu'il ne manque pas de "=" comme dans le premier et
que tu n'as pas de coupures de lignes (code en rouge).
Sinon voici:

http://cjoint.com/?fbvxzJ7hHr

Cordialement.

lSteph


Sub SupprimeToutCodeEtFormulaire()

Dim VBComp As Object, VBComps As Object
Dim nomClasseur As String, Nom2 As String


nomClasseur = InputBox("Nom du classeur dont on veut" _
& vbCrLf & "effacer toutes les macros et tous les
formulaires(UserForms)?)" _
& vbCrLf & "Format: monClasseur.xls" _
& vbCrLf & "Laisser en blanc pour quitter")


If nomClasseur = "" Then Exit Sub


Do While Nom2 <> nomClasseur
Nom2 = InputBox("Confirmez le nom du fichier svp" _
& vbCrLf & "Laissez en blanc pour quitter")
If nomClasseur = "" Then Exit Sub
Loop


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
End Sub ' idée original de papou
'isabelle




bonjour lSteph
merci du tuyau
effectivement, plus de message d'erreurs : mais rien ne se produit: aucune
ligne détruite ni aucun module effacé
j'ai exécuté la macro plusieurs fois et ... rien
???
j'ai dû sauter quelque chose
;-(
claude


"LSteph" %23t%
Bonjour,

Dans excel, menu outils macro
dérouler le menu pour acceder à l'item
sécurité
(dans l'onglet niveau mettre plutôt moyen qu'élevé)
dans l'onglet Editeurs Approuvés en bas
Faire confiance au projet.(Cocher cette case)

Cordialement.

lSteph

bonjour Isabelle et merci
quand j'exécute la macro, sur la ligne
Set VBComps=Workbooks(nomClasseur).VBProject.VBComponents
j'obtiens une erreur 1004
"l'accès par programme au projet Visual Basic n'est pas fiable"
j'ai bien chargé la bibliothèque Microsoft Visual Basic for Applications
Extensibility 5.3
qu'en penses-tu ?
merci d'avance
claude




"isabelle" a écrit dans le message de news:

bonjour Claude,


Sub SupprimeToutCodeEtFormulaire()

Dim VBComp As Object, VBComps As Object
Dim nomClasseur As String, Nom2 As String


nomClasseur InputBox("Nom du classeur dont on veut" _
& vbCrLf & "effacer toutes les macros et tous les formulaires
(UserForms)?)" _
& vbCrLf & "Format: monClasseur.xls" _
& vbCrLf & "Laisser en blanc pour quitter")


If nomClasseur "" Then Exit Sub


Do While Nom2 <> nomClasseur
Nom2 InputBox("Confirmez le nom du fichier svp" _
& vbCrLf & "Laissez en blanc pour quitter")
If nomClasseur "" Then Exit Sub
Loop


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
End Sub ' idée original de papou

isabelle




bonjour à tous
depuis mon classeur, je fais une copie et j'enregistre
Est-il possible, par une macro, d'enlever tout le code vba existant
dans cette copie avant de l'enregistrer ?
merci par avance
claude











Publicité
Poster une réponse
Anonyme