Bonsoir tout le monde.
Pour des besoins de maintenance d'une petite appli qui tourne sous Excel
j'aimerais pouvoir par code supprimer un module et le remplacer par un
autre.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour tip.tiptop,
Copie tout ceci dans un module standard.
'---------------------------------- Sub test()
'Ajoute un module au classeur actif du nom de toto AjouterUnModule ThisWorkbook, "toto"
'Supprime tout le code du module feuille "Feuil1" SupprimeModule ThisWorkbook.VBProject.VBComponents("Feuil1")
End Sub '----------------------------------
'Si c'est un module standard, de classe ou formulaire, ces derniers sont supprimés... si c'est une feuille module, tout le code est supprimé de ce module feuille.
'--------------------------- Sub SupprimeModule(Module As Object)
Dim VbComps As Object Set VbComps = Module.CodeModule.Parent.Collection
Select Case Module.Type Case 100 With Module.CodeModule .DeleteLines 1, .CountOfLines End With Case Else VbComps.Remove Module End Select
End Sub
'------------------------------ Sub AjouterUnModule(Wk As Workbook, Nom As String)
Dim Obj As Object ' Module Standard : vbext_ct_StdModule= 1 ' Module de Classe : vbext_ct_ClassModule = 2 ' Formulaire : vbext_ct_MSForm = 3 ' Module Feuille vbext_ct_Document = 100
'Selon le type de module que tu veux ajouter, tu remplaces 'le "1" par le chiffre correspondant With Wk.VBProject.VBComponents Set Obj = .Add(1) Obj.Name = "Toto" End With Set Objt = Nothing
End Sub '------------------------------
Salutations!
"tip.tiptop" a écrit dans le message de news: 4419e79a$0$20828$ Bonsoir tout le monde. Pour des besoins de maintenance d'une petite appli qui tourne sous Excel j'aimerais pouvoir par code supprimer un module et le remplacer par un autre.
Es ce possible????
Par avance merci pour votre aide.
Bonjour tip.tiptop,
Copie tout ceci dans un module standard.
'----------------------------------
Sub test()
'Ajoute un module au classeur actif du nom de toto
AjouterUnModule ThisWorkbook, "toto"
'Supprime tout le code du module feuille "Feuil1"
SupprimeModule ThisWorkbook.VBProject.VBComponents("Feuil1")
End Sub
'----------------------------------
'Si c'est un module standard, de classe ou formulaire, ces derniers sont
supprimés... si c'est une feuille module, tout le code est supprimé de
ce module feuille.
'---------------------------
Sub SupprimeModule(Module As Object)
Dim VbComps As Object
Set VbComps = Module.CodeModule.Parent.Collection
Select Case Module.Type
Case 100
With Module.CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
VbComps.Remove Module
End Select
End Sub
'------------------------------
Sub AjouterUnModule(Wk As Workbook, Nom As String)
Dim Obj As Object
' Module Standard : vbext_ct_StdModule= 1
' Module de Classe : vbext_ct_ClassModule = 2
' Formulaire : vbext_ct_MSForm = 3
' Module Feuille vbext_ct_Document = 100
'Selon le type de module que tu veux ajouter, tu remplaces
'le "1" par le chiffre correspondant
With Wk.VBProject.VBComponents
Set Obj = .Add(1)
Obj.Name = "Toto"
End With
Set Objt = Nothing
End Sub
'------------------------------
Salutations!
"tip.tiptop" <tip.tiptop@free.fr> a écrit dans le message de news: 4419e79a$0$20828$636a55ce@news.free.fr...
Bonsoir tout le monde.
Pour des besoins de maintenance d'une petite appli qui tourne sous Excel
j'aimerais pouvoir par code supprimer un module et le remplacer par un
autre.
'Ajoute un module au classeur actif du nom de toto AjouterUnModule ThisWorkbook, "toto"
'Supprime tout le code du module feuille "Feuil1" SupprimeModule ThisWorkbook.VBProject.VBComponents("Feuil1")
End Sub '----------------------------------
'Si c'est un module standard, de classe ou formulaire, ces derniers sont supprimés... si c'est une feuille module, tout le code est supprimé de ce module feuille.
'--------------------------- Sub SupprimeModule(Module As Object)
Dim VbComps As Object Set VbComps = Module.CodeModule.Parent.Collection
Select Case Module.Type Case 100 With Module.CodeModule .DeleteLines 1, .CountOfLines End With Case Else VbComps.Remove Module End Select
End Sub
'------------------------------ Sub AjouterUnModule(Wk As Workbook, Nom As String)
Dim Obj As Object ' Module Standard : vbext_ct_StdModule= 1 ' Module de Classe : vbext_ct_ClassModule = 2 ' Formulaire : vbext_ct_MSForm = 3 ' Module Feuille vbext_ct_Document = 100
'Selon le type de module que tu veux ajouter, tu remplaces 'le "1" par le chiffre correspondant With Wk.VBProject.VBComponents Set Obj = .Add(1) Obj.Name = "Toto" End With Set Objt = Nothing
End Sub '------------------------------
Salutations!
"tip.tiptop" a écrit dans le message de news: 4419e79a$0$20828$ Bonsoir tout le monde. Pour des besoins de maintenance d'une petite appli qui tourne sous Excel j'aimerais pouvoir par code supprimer un module et le remplacer par un autre.