Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador Modules. Mostrar todas as postagens
Mostrando postagens com marcador Modules. Mostrar todas as postagens

VBA Excel - Adicione um Módulo a partir de um arquivo texto - Add content to a module from a file using VBA in Microsoft Excel


O código postado neste artigo é para quem tem inúmeros módulos de código VBA prontos em diversas aplicações e vez por outra deseja importar parte desses códigos para acelerar o desenvolvimento.

Examplo:

ImportModuleCode ActiveWorkbook, "TModule", "C:\Bernardes\NovosCodigos.txt"

Sub ImpModuleCod (ByVal wb As Workbook, _
    ByVal ModuleName As String, ByVal ImportFromFile As String)

Dim VBCM As CodeModule

    If Dir(ImportFromFile) = "" Then Exit Sub
    On Error Resume Next
    Set VBCM = wb.VBProject.VBComponents(ModuleName).CodeModule
    If Not VBCM Is Nothing Then
        VBCM.AddFromFile ImportFromFile

        Set VBCM = Nothing
    End If

    On Error GoTo 0

End Sub

  TagsModules, Class Modules in VBA, VBA, Excel, import, code, 
    

VBA Excel - Copiando o módulo entre os workbooks - Copy modules from one workbook to another

Inline image 1

Em algumas planilhas, em especial aquelas onde temos uns 4 ou 5 Dashboards, existem funções de navegação e mesmo layouts que são adaptáveis ao seu respectivo conteúdo (contexto). Em muitas delas o comportamento é similar, mas não exatamente igual. Podemos até tornar as funcionalidades customizáveis de acordo com a opção escolhida para análise. Com essa técnica podemos como que estender os 'poderes'  da planilha durante a análise feita nela. Isso é que é polimorfismo! O Mesmo objeto, mas com novas características nos eventos.

Antes de continuar, um pequeno parênteses, deixe seus comentários para este post. 

Bem, introdução à parte, o código abaixo permite que migre todo o conteúdo de um workbook para outro. Siga a sintaxe:CopyModule Workbooks ("Bernardes_Plan01.xlsb"), "mdl_Navigation_Functions", Workbooks ("Bernardes_Plan0.xlsb")

Sub CopyModule (SourceWB As Workbook, strModuleName As String, _
                            TargetWB As Workbook)

    Dim strFolder As String, strTempFile As String

    Let strFolder = SourceWB.Path

    If Len(strFolder) = 0 Then Let strFolder = CurDir

    Let strFolder = strFolder & "\"
    Let strTempFile = strFolder & "~tmpexport.bas"
    
    On Error Resume Next

    SourceWB.VBProject.VBComponents(strModuleName).Export strTempFile
    TargetWB.VBProject.VBComponents.Import strTempFile
    
    Kill strTempFile
    
    On Error GoTo 0
End Sub



Reference:

Tags: VBA, Excel, content, add, module, módulo, copy, copiar, Module, conteúdo, Modules, Class Modules in VBA, kill, export, workbook  


VBA Excel - Adicionando um conteúdo para um módulo a partir de um arquivo - Add content to a module from a file using VBA in Microsoft Excel









Ao efetuar a manutenção de uma aplicação talvez não desejemos importar todo um módulo, mas apenas algumas funcionalidades ou processos deste.

Antes de continuar, um pequeno parênteses, deixe seus comentários para este post. 

Selecionamos então as funcionalidades que desejamos e as colamos em um arquivo texto externo. Com o código abaixo somos capazes de importar o arquivo externo, inserindo o código dele no módulos que selecionarmos: ImportModuleCode ActiveWorkbook, "mdl_ExternalCode", "C:\Bernardes\nCodes.txt"


Sub ImportModuleCode (ByVal wb As Workbook, _
                                       ByVal ModuleName As String, _
                                       ByVal ImportFromFile As String)

' imports code to ModuleName in wb from a textfile named ImportFromFile
Dim VBCM As CodeModule

    If Dir(ImportFromFile) = "" Then Exit Sub
    On Error Resume Next

    Set VBCM = wb.VBProject.VBComponents(ModuleName).CodeModule

    If Not VBCM Is Nothing Then
        VBCM.AddFromFile ImportFromFile
        Set VBCM = Nothing
    End If

    On Error GoTo 0
End Sub


Reference:

Tags:VBA, Excel, content, add, module, módulo, adicionar, Module, conteúdo, Modules, Class Modules in VBA, 

VBA Excel - Adicionando uma Procedure a um módulo - Add a procedure to a module using

Inline image 1

Podemos inserir Funções ou Subs em módulos pré-existentes na nossa planilha. Para isso basta que programemos o seguinte código em qualquer evento da nossa planilha:

Antes de continuar, um pequeno parênteses, deixe seus comentários para este post. 

InsertProcedureCode Workbooks("WorkBookBernardes.xlsb"), "mdl_Functions_AutomaticInserted"

Sub InsertProcedureCode (ByVal wb As Workbook, ByVal InsertToModuleName As String)
Dim VBCM As CodeModule
Dim InsertLineIndex As Long

    On Error Resume Next

    Set VBCM = wb.VBProject.VBComponents(InsertToModuleName).CodeModule

    If Not VBCM Is Nothing Then

        With VBCM
            Let InsertLineIndex = .CountOfLines + 1

            ' customize the next lines depending on the code you want to insert
            .InsertLines InsertLineIndex, "Sub NewSubName()" & Chr(13)
           
             Let InsertLineIndex = InsertLineIndex + 1
            .InsertLines InsertLineIndex, _
                "    Msgbox ""Olá Mundo!"",vbInformation,"".: Primeira""" & Chr(13)

            Let InsertLineIndex = InsertLineIndex + 1

            .InsertLines InsertLineIndex, "End Sub" & Chr(13)
            ' no need for more customizing
        End With

        Set VBCM = Nothing

    End If

    On Error GoTo 0
End Sub


Reference:
Tags:  VBA, Excel, procedure, add, module, módulo, adicionar, Modules, Class Modules in VBA


diHITT - Notícias