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 :
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.
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
Merci une fois de plus pour votre précieuse aide !
PS: si vous voyez des simplifications possible n'hésitez pas![]()
Partager