Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Supprimer module VBA

  • Initiateur de la discussion Initiateur de la discussion hamidap
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

H

hamidap

Guest
Bonjour,

Je souhaite supprimer un module VBA d'une feuille excel.
Voilà en gros le schema :
Une macro A dans un module1 qui appelle une macro B dans un module2, la macro B contient les instructions de suppression du module1 (comme si le module1 appelait une macro qui le supprime).
La suppression s'effectue, mais la sauvegarde ne fait pas.

Une idée?
 
Re : Supprimer module VBA

Non j'ai essayé les deux, dans le module1 et dans le module2 et toujours rien
Alors que quand je mets un msgbox "blablabla" après l'instruction du save il passe bien dessus et j'ai bien vérifié que le workbook que j'essaie de sauver est bien celui que je veux.
Et quand je fais un save manuel ou que je lance juste une macro save du genre thisworkbook.save il sauvegarde bien la chose !!
 
Re : Supprimer module VBA

mettre cette fonction dans module1

Function removeModule(moduleName As String, workbookName As String)
Dim Wk As Workbook
Set Wk = Workbooks(workbookName)
Dim i As Integer
For i = Wk.VBProject.VBComponents.Count To 1 Step -1
If Wk.VBProject.VBComponents.Item(i).Type = 1 Then
If Wk.VBProject.VBComponents.Item(i).Name = moduleName Then
Wk.VBProject.VBComponents.Remove Wk.VBProject.VBComponents.Item(i)
End If
End If
Next i
wk.save
End Function

et faire un appel à partir de module2 de la fonction

call removeModule(module1, thisworkbook.name)

ça supprime mais ne sauvegarde pas (voir ligne wk.save)
 
Re : Supprimer module VBA

Bonjour à tous,

ce qui est déjà sûr c'est qu'il serait beaucoup mieux de mettre ce code dans le module2
Dans le module1, c'est sûr qu'il ne pourra jamais enregistrer le classeur puisque le module qui contient la ligne qui dit d'enregistrer le classeur n'existe plus...
 
Re : Supprimer module VBA

merci de ta réponse, mais ça n'a pas l'air de marcher la sauvegarde.
la preuve quand je veux fermer ton classeur il me demande de sauvegarder, si je fais non et que je réouvre je retrouve le module pas supprimé 🙂
 
Re : Supprimer module VBA

Re,

ah ben oui, j'avais pas vu... comme je l'avais dit au début il semble que

supprimer un Module dont le code est en train d'être exécuté

entraine certains problèmes de stabilités ?

Pourquoi est-ce indispenspensable ? Si tu nous explique pourquoi tu veux faire ça, on pourra peut-être te proposer une éventuelle solution de contournement, qui sait ?
 
Re : Supprimer module VBA

En gros c'est une macro qui fait une synthèse de plusieurs fichiers dans une seule fiche, se sauvegarde, et s'envoie par mail toute seule comme une grande.
Je veux juste supprimer le module du code et n'envoyer que la fiche de synthèse pour faire des mails plus léger.
 
Re : Supprimer module VBA

hello, tu avais raison, quand une macro supprime le module ou elle est le comportement devient instable. J'ai fini par sauvegarder une image du fichier dans un deuxième fichier tampon qui vient ouvrir celui ci et supprimer le module. Là ça marche!!
Merci de ton aide !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
481
  • Question Question
Réponses
7
Affichages
511
Réponses
16
Affichages
556
Réponses
43
Affichages
810
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…