Bonjour à tous,

J'aimerai un peu d'aide pour la correction de ces quelques lignes.
Le principe est assez simple : j'ai un feuille "type" sur laquelle on peut faire pas mal d'opérations et lorsque j'ai fini avec la feuille type je la copie vers une destination et je la réinitialise pour pouvoir recommencer. Ce qui me gène c'est que lors de la copie, toutes les procédures contenues sont également copiées ce qui prend énormément de place pour rien à la longue. J'ai donc essayer de supprimer tout le code contenu dans la copie comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Exporter_Click()
Dim Ok As Boolean,j%, nom$, wsh As Worksheet
Ok = True
nom = "NomDeLaFeuille"
'Vérifie qu'une feuille ne porte pas déja le nom "NomDeLaFeuille"
For Each wsh In ActiveWorkbook.Worksheets
    If wsh.Name = nom Then
        Ok = False
    End If
Next
If Ok = False Then
    MsgBox "Une feuille du tableur porte déjà le nom " & nom
Else
    Sheets("Feuil1").Copy Before:=Sheets("BorneSup") 'par défault le nom est feuil (2) donc je change le nom
    Sheets("Feuil1 (2)").Name = nom
End If
'Ensuite j'essai d'effacer tous le code contenu avec ces 3 lignes seulement, sur 2010 ça marche très bien mais sur 2003 s'affiche erreur 400 ...
With ActiveWorkbook.VBProject.VBComponents(Worksheets(nom).CodeName).CodeModule
    .DeleteLines 1, .CountOfLines
End With
End Sub
Voila donc le problème c'est que je bosse sur la version 2010 ou tout fonctionne et dès qu'il faut faire tourner tout ça sur une version 2003, la copie se fait très bien suivie d'une erreur 400 qui provient des trois dernières lignes.

Merci une fois de plus pour votre précieuse aide !

PS: si vous voyez des simplifications possible n'hésitez pas