Notifications
Clear all

Copiar Texto para o Modulo VBA como comentario

6 Posts
2 Usuários
0 Reactions
1,298 Visualizações
(@mprudencio)
Posts: 2749
Famed Member
Topic starter
 

O titulo é bem objetivo

E possivel copiar um texto qualquer de uma celula para o modulo VBA, folha da planilha ou Esta Pasta de Trabalho como um comentario no modulo

Um Exemplo

Suponha que em A1 tenha uma frase Bom Dia! Deus é Fiel.

Como colocar isso no modulo vba como comentario.

Ou seja se o texto for trocado troca o comentario tb.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 27/01/2016 5:45 am
(@srobles)
Posts: 231
Estimable Member
 

MPrudencio, Bom dia!

Seria algo parecido com isso?

Sub InsertProcedureCode(ByVal wb As Workbook, ByVal InsertToModuleName As String)
' inserts new code in module named InsertModuleName in wb
' needs customizing depending on the code to insert
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
            InsertLineIndex = .CountOfLines + 1
            ' customize the next lines depending on the code you want to insert
            .InsertLines InsertLineIndex, "Sub NewSubName()" & Chr(13)
            InsertLineIndex = InsertLineIndex + 1
            .InsertLines InsertLineIndex, _
                "    Msgbox ""Hello World!"",vbInformation,""Message Box Title""" & Chr(13)
            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

Para chamar a rotina :

InsertProcedureCode Workbooks("WorkBookName.xls"), "Module1"

Créditos : http://www.exceltip.com/modules-class-modules-in-vba/add-a-procedure-to-a-module-using-vba-in-microsoft-excel.html

Abs

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 27/01/2016 8:39 am
(@mprudencio)
Posts: 2749
Famed Member
Topic starter
 

srobles obrigado pela resposta mas deu erro dentro do with nessas linhas


With VBCM
            InsertLineIndex = .CountOfLines + 1
            ' customize the next lines depending on the code you want to insert
o erro inicia aqui
    .InsertLines InsertLineIndex, "Sub NewSubName()" & Chr(13)
            InsertLineIndex = InsertLineIndex + 1
            .InsertLines InsertLineIndex, _
                "    Msgbox ""Hello World!"",vbInformation,""Message Box Title""" & Chr(13)
            InsertLineIndex = InsertLineIndex + 1
         .InsertLines InsertLineIndex, "End Sub" & Chr(13)
ate aqui
            ' no need for more customizing
        End With



Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 27/01/2016 9:26 am
(@srobles)
Posts: 231
Estimable Member
 

MPrudencio,

Vamos lá :

1) Adicione a referência a biblioteca Microsoft Visual Basic Extensibility 5.3 ;
2) Crie um botão e/ou rotina para chamar a rotina
3) Crie um módulo com o nome que queira, mas preste atenção na chamada da rotina;
3) Crie um novo módulo e mude seu nome ou adicione esta Sub ao código do form ou qualquer outro módulo e cole o código abaixo :

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
            .InsertLines 1, "'Deus é Fiel" 'Adiciona o texto na primeira linha do módulo, caso queira contar as linhas usadas use .CountOfLines + 1, "TEXTO"
        End With
        Set VBCM = Nothing
    End If
    On Error GoTo 0
End Sub

Chamada da rotina :

InsertProcedureCode Workbooks(ThisWorkbook.Name), "Módulo1"

Em anexo, deixo um exemplo com duas possibilidades para melhor compreensão.

Abs

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 27/01/2016 11:27 am
(@srobles)
Posts: 231
Estimable Member
 

MPrudencio,

Algum parecer a respeito da dúvida?

Abs

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 31/01/2016 5:37 pm
(@mprudencio)
Posts: 2749
Famed Member
Topic starter
 

Srolbes, na verdade acabei me esquecendo de dar um retorno a respeito do codigo.

Vou testar durante a semana e dou um retorno.

Obrigado por enquanto

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 31/01/2016 7:30 pm