Dans cet article, nous allons créer une macro pour insérer un nouveau module dans un classeur Excel.

Avant d’exécuter la macro, nous devons spécifier le type et le nom du module.

ArrowMain

ArrowRaw

Comme on peut le voir sur la capture d’écran, nous n’avons qu’un seul module dans le classeur. Dans cet exemple, nous ajouterons un module de classe au classeur.

ArrowOutput

Explication logique

Dans cet article, nous avons créé deux macros, «CreateNewModule» et «CallingProcedure».

La macro «CreateNewModule» est utilisée pour ajouter un nouveau module, en fonction de l’entrée fournie.

La macro «CallingProcedure» est utilisée pour fournir l’entrée et appeler le module principal.

Explication du code

Définir ModuleComponent = Wbook.VBProject.VBComponents.Add (ModuleTypeIndex)

Le code ci-dessus est utilisé pour ajouter un nouveau module dans le projet VBA.

ModuleComponent.Name = NewModuleName Le code ci-dessus est utilisé pour renommer le composant inséré.

ModuleTypeConst = Cint (Range (« D12 »). Value)

Le code ci-dessus est utilisé pour obtenir la valeur entière de la cellule D12.

ModuleName = Sheet1.TextBox2.Value Le code ci-dessus est utilisé pour obtenir la valeur de la zone de texte.

Veuillez suivre ci-dessous pour le code

Option Explicit

Sub CreateNewModule(ByVal ModuleTypeIndex As Integer, ByVal NewModuleName As String)

'Declaring variables

Dim ModuleComponent As VBComponent

Dim WBook As Workbook

'Creating object of active workbook

Set WBook = ActiveWorkbook

Set ModuleComponent = Nothing



On Error Resume Next

'Adding new module component

Set ModuleComponent = WBook.VBProject.VBComponents.Add(ModuleTypeIndex)

If Not ModuleComponent Is Nothing Then

'Renaming the new module

ModuleComponent.Name = NewModuleName

End If

On Error GoTo 0

Set ModuleComponent = Nothing

End Sub

Sub CallingProcedure()

'Declare variables

Dim ModuleTypeConst As Integer

Dim ModuleName As String

'Getting value of module name and type of module

ModuleTypeConst = CInt(Range("D12").Value)

ModuleName = Sheet1.TextBox2.Value

'Calling CreateNewModule

CreateNewModule ModuleTypeConst, ModuleName

End Sub

Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

Nous aimerions avoir de vos nouvelles, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]