Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2012, 14h17   #1
Futur Membre du Club
 
Homme
Étudiant
Inscription : août 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2011
Messages : 34
Points : 16
Points : 16
Par défaut Supprimer du code par VBA

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 :
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
PolyAmide est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h44.


 
 
 
 
Partenaires

Hébergement Web