Saudações meus caros!
Consegui resolver o meu problema a cima e gostaria de compartilha com vc's e com outras pessoas que no futuro talvez necessitem da mesma solução; seguinte:
Basicamente adaptei os códigos dessa página às minhas necessidades, LINK.
Antes vc tem que ir, no excel, em OPÇÕES → CENTRAL DE CONFIABILIDADE → CONFIGURAÇÕES DA CENTRAL DE CONFIABILIDADE → CONFIGURAÇÕES DE MACRO → FLEGAR A OPÇÃO: "CONFIAR NO ACESSO AO MODELO DE OBJETO DE PROJETO DO VBA".
Também tem que, no ambiente do VB Editor, ir em: FERRAMENTAS → REFERÊNCIAS → FLEGAR A OPÇÃO: "Microsoft Visual Basic for Application Extensibility 5.3"
Feito isso ao implementar o código do link no meu projeto, devidamente adaptado, ficou assim:
Public Sub Add_Event_Planilha1()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Dim LineNum As Long
Dim arrRng As Variant
Dim i As Long
Dim UltLine As Integer
Set VBProj = ActiveWorkbook.VBProject
'O código que eu queria inserir no módulo da "Planilha1 (nome VBA da planilha)" estava
'no intervalo (arrRng) da Sheet da Workbook de origem (eu tenho uma workbook que criava 'outra!).
Set VBComp = VBProj.VBComponents("Planilha1")
Set CodeMod = VBComp.CodeModule
With Wsh_NModule
'Definição do intervalo que contém o código que quero inserir5
UltLine = .Cells(Rows.Count, 1).End(xlUp).Row
arrRng = .Range(.Cells(1, 1), .Cells(UltLine, 1))
'Aqui eu itero entre as linhas do intervalo
For i = LBound(arrRng) To UBound(arrRng)
LineNum = CodeMod.CountOfLines + 1
'Aqui insiro cada linha do intervalo no módulo da "Planilha1"
CodeMod.InsertLines LineNum, arrRng(i, 1)
LineNum = LineNum + 1
Next i
End With
End Sub
A minha necessidade inicial era criar um módulo em outra workbook, mas como se tratava de eventos de planilha e de workbook, então não houve necessidade de criação do módulo, pois inserir diretamente em EstaPastaDeTrabalho e Planilha1. Porém, antes acabei sim, inserindo o código para criação de módulo do link e também rodou tranquilamente.
Postado : 10/08/2021 8:50 am