Supprimer du code par une macro

Grem974

XLDnaute Nouveau
Bonjour,
Le sujet a été abordé plusieurs fois sur internet, les commentaires associés aux problèmes sont plutôt élogieux, mais chez moi ça ne fonctionne pas il y a toujours une erreur qui empêche la bonne exécution. Certainement parce que je ne le positionne pas au bon endroit mais (sauf si je ne sais pas bien regarder) je ne vois pas d'indication pour ça

j'ai essayé :
Supprimer les macros par une macro

et

https://www.excel-downloads.com/threads/supprimer-code-vba-lors-dune-copie-de-feuille.81364/

Mais pas réussi à faire.

J'aimerais dans mon fichier supprimer une partie du code pour chaque feuille portant un nom de mois. Afin d'alléger le fichier et éventuellement accélérer l'exécution du code.

merci de votre aide!
 

Pièces jointes

  • Testeur.xlsm
    105.6 KB · Affichages: 34
  • Testeur.xlsm
    105.6 KB · Affichages: 34
  • Testeur.xlsm
    105.6 KB · Affichages: 38

Pierrot93

XLDnaute Barbatruc
Re : Supprimer du code par une macro

Bonjour,

pas sur d'avoir tout compris de ton problème, mais si tu utilises les mêmes procédures pour toutes les feuilles, tu peux placer les codes dans le module "thisworkbook" :
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'ton code
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'ton code
End Sub

A noter que tu peux faire un test sur le nom de le la feuille avec "sh.name" et donc écarter certaines feuilles du traitement...

bon après midi
@+
 

MJ13

XLDnaute Barbatruc
Re : Supprimer du code par une macro

Bonjour Grem974, Pierrot

Voici un code pour supprimer le code VBA de la feuille active:

Code:
Sub Supprimer_Lignes_Code_ActiveSheet()
ThisWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule.DeleteLines 1, ThisWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule.CountOfLines
End Sub
 
Dernière édition:

Grem974

XLDnaute Nouveau
Re : Supprimer du code par une macro

Bonjour à tout le monde,

pour la question de où le positionner je me demandais où dans le projet? Genre dans la feuille, le classeur, un module, un module de classe etc. mais si je comprends bien, car je ne suis pas un programmeur depuis longtemps (3 semaines maxi):
Sub/End Sub c'est des macros donc dans des modules,
Sub worksheet/End Sub ce sont des feuilles,
et Sub Workbook/EndSub ce sont les feuilles c'est ça?

@Pierrot : je n'ai pas compris ce que tu disais avec "sh.name", est-ce une expression pour dire nom de feuille ou est-ce une commande?

@MJ13 : est ce que tu pourrais m'expliquer un peu ce que les commandes font? je cherche des tutos mais je ne trouve pas des trucs pour les vrais noobs comme moi.

@Modeste geedee : Je te remercie pour ce document, je ne suis pas sûr d'avoir tout percuté...

Merci pour vos réponses en tout cas! :)
 

Grem974

XLDnaute Nouveau
Re : Supprimer du code par une macro

Exact cher Stapple1600!! D'ailleurs je comptais te remercier en MP mais tu las as bloqués...

Tous les fils que je poste sont liés parce que je suis sur un relativement gros projet donc je fais des essais, je fais planter mon PC et quand j'ai passé une journée à chercher ben j'appelle au secours...

Heureusement qu'il y a des gens performants et gentils sur les forums!!
 

Pierrot93

XLDnaute Barbatruc
Re : Supprimer du code par une macro

Bonjour à tous,

@Pierrot : je n'ai pas compris ce que tu disais avec "sh.name", est-ce une expression pour dire nom de feuille ou est-ce une commande?

"sh" est un paramètre qui est passé à la procédure et qui représente la feuille de calcul concernée par l'événement... tu peux donc agir sur les propriétés de celle ci en les faisant précédé de la variable "sh"...

bonne journée
@+
 

Grem974

XLDnaute Nouveau
Re : Supprimer du code par une macro

Merci pour ces éclaircissements j'ai bien compris, testé ce que vous m'avez donné comme conseils.
Ce que j'ai semble fonctionner et j'ai transféré le code utile au classeur plutôt qu'à chaque feuille... c'est effectivement plus intelligent!
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 271
Membres
103 168
dernier inscrit
isidore33