Suppression de code ou de Sub()

  • Initiateur de la discussion stef
  • Date de début
S

stef

Guest
Forumien-mienne bonjour

Ma demande peut paraitre etrange mais bon...

Est il possible a partir d'une Sub() VBA, de supprimer definitivement une autre Sub() du même classeur ou d'un autre classeur ?

That's the question ... ;-)

Ici stef en direct du boulot.. à vous les pros...

@+
 
F

florian

Guest
Bonsoir,

réponse version débutant:

Sub SupprimerSub()


Dim classeur As Workbook 'classeur où se trouve procédure à zigouiller

Dim nom_procédure As String 'nom de la procédure à zigouiller

Dim nom_module As String 'nom d'un module qui va subir un régime

Dim debut_code As Integer 'numéro ligne où commence procédure à zigouiller

Dim longueur_code As Integer 'nombre ligne(s) de la procédure qu'on veut réduire à zéro

Dim code 'code-Module où se trouve procédure à zigouiller



Set code = classeur.VBProject.VBComponents(nom_module).CodeModule

debut_code = code.ProcStartLine(nom_procédure, vbext_pk_Proc)

longueur_code = code.ProcCountLines(nom_procédure, vbext_pk_Proc)


code.DeleteLines debut_code , longueur_code 'on supprime les lignes de

code de la procédure


classeur.save 'on enregistre les modifications

End Sub


Voilà,

Florian


ps: Au fait, dans quelle cas peut-on avoir intérêt à suppimer une

procédure?
 
S

stef

Guest
merci Florian

Dans quel cas??? j'avais bien dit que c'etait etrange comme question lol

Ben voila,
j'ai un classeur avec deux feuilles
a l'ouverture la 1ere feuille se remplis avec des info recuperée dans d'autres classeurs.
sur clic sur un bouton la 2eme va se remplir avec encore un tas de données externes puis, apres demande a l'utilisateur , la 2eme feuille va s'enregistrer dans un autre repertoire (seule ,sans la 1ere).
Le hic c'est lorsque l'utilisateur refuse d'enregistrer immediatement. Il peut alors modifier la 2eme feuille et enregistrer apres en cliquant sur un bouton contenu dans cette même 2eme feuille (en fait ca ne fait pas que enregistrer ca serait trop simple)
Et une fois que la copie de la feuille est faite (avec bouton et macro qui vont avec), ben faut sourtout pas cliquer sur le bouton (qui je le rappel ne fait pas que enregistrer)
Pour faire face a cela j'efface le bouton de la nouvelle 2eme feuille, mais le code subsiste.
C'est donc pour faire un peu plus clean que je souhaitait l'effacer. Voilà

T'as suivi qque chose ???!!!

Vu de l'exterieur ca doit pas etre bien clair pi t'etre ;-D

encore merci
 
@

@+Thierry

Guest
Bonjour Stef, Florian et le Forum

Très bien Florian, ta macro pour effacer une macro précise dans un module standard, j'ai un peu travaillé dessus afin qu'elle soit plus facile à adapter...

Pour toute information complémentaire je vous conseille (surtout toi Stef, car j'ai rajouté ce dont tu as besoin dans ton problème actuel de Private Module de Sheet) de voir ce fil incontournable (lol)

=> >>> DATABASE XLD <<< RECENCEMENT FIL >> 21649 "VBA Effacement/Ecriture Macro"


Voilà je pense qu'il y a de quoi jouer en suppression/écriture de macro dans VBE par VBA maintenant dans ce Forum !!!

Bon Dimanche à tous et toutes
@+Thierry
 

Discussions similaires

Réponses
6
Affichages
298

Statistiques des forums

Discussions
312 188
Messages
2 086 028
Membres
103 100
dernier inscrit
erym64300