ALTERAR CODIGO DE PLANILHA VIA MACRO

 Tópico anterior Próximo tópico Novo tópico

ALTERAR CODIGO DE PLANILHA VIA MACRO

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#479362 - 29/01/2018 13:52:37

PABLOMOREIRAGV
GOVERNADOR VALADARES
Cadast. em:Julho/2010


Olá,

      Vi este tópico aqui que me ajudou bastante, porém preciso saber como faço para que o código não escreva novamente, caso o texto já esteja no VBProject, pois quando se executa o código mais de uma vez ele escreve o evento de novo e dá duplicidade gerando erro. Alguém sabe fazer a verificação se caso o código já foi executado?

Tópico citado: https://social.msdn.microsoft.com/Forums/pt-BR/a860eab9-b80d-4ff2-b923-e81b6190c288/alterar-cdigo-de-planilha-via-macro?forum=vbapt

'Código:

'================================

Sub AddCodInSheet() 'adiciona o código CALCULATE no evente Selection Change da planilha ativa

        Dim VBProj As Object
        Dim VBComp As Object
        Dim CodeMod As Object

        Set VBProj = ActiveWorkbook.VBProject
        Set VBComp = VBProj.VBComponents(ActiveSheet.Name)  'Nome da sua Sheet
        Set CodeMod = VBComp.CodeModule
        
        
        Dim strNewCode As String
        
        strNewCode = "Private Sub Worksheet_SelectionChange(ByVal Target As Range)" & Chr(10) _
                   & "    Calculate" & Chr(10) _
                   & "     'seleção ativada" & Chr(10) _
                   & "End Sub"
        
        CodeMod.AddFromString strNewCode
                
End Sub

'================================
                Desde já agradeço

Pablo Moreira

#479363 - 29/01/2018 15:20:42

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Caramba, isso é MUITO esquisito...

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#479391 - 31/01/2018 07:52:21

PABLOMOREIRAGV
GOVERNADOR VALADARES
Cadast. em:Julho/2010


Citação:
:
Caramba, isso é MUITO esquisito...

Caramba, 5 estrelas e é tudo que tem a dizer? Mas, obrigado mesmo assim.

Pablo Moreira

#479396 - 31/01/2018 11:48:40

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Citação:
:
:
Caramba, isso é MUITO esquisito...
Caramba, 5 estrelas e é tudo que tem a dizer? Mas, obrigado mesmo assim.

O que exatamente você precisa fazer? Explique o comportamento que você quer.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#479398 - 31/01/2018 11:58:40

PABLOMOREIRAGV
GOVERNADOR VALADARES
Cadast. em:Julho/2010


Última edição em 31/01/2018 11:59:55 por PABLOMOREIRAGV

 Anexos estao visíveis somente para usuários registrados

Segue em anexo planilha exemplo e imagem com a descrição do erro.

Funciona perfeitamente clicando uma vez só, porém, quando clica de novo ele deveria ignorar, caso já haja o evento na PLAN1, inseriria somente o código sem o evento Selection Change.


Pablo Moreira

#479400 - 31/01/2018 13:04:16

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
O que estou querendo dizer é: O que a macro precisa fazer? Não acho que você precisa criar módulos dinamicamente.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#479401 - 31/01/2018 13:20:25

PABLOMOREIRAGV
GOVERNADOR VALADARES
Cadast. em:Julho/2010


Citação:
:
O que estou querendo dizer é: O que a macro precisa fazer? Não acho que você precisa criar módulos dinamicamente.

O que a macro precisaria fazer é inserir o código no evento SELECTION CHANGE, caso o usuário rodar a macro novamente não repita inserção do evento. Somente inserção do código preservando o evento que já esteja no VB Project se for igual.

Pablo Moreira

#479403 - 31/01/2018 13:54:44

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Isso eu entendi. O que não consegui sacar é porque não simplesmente escrever o evento, porque precisa ser dinâmico

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#479404 - 31/01/2018 13:59:14

PABLOMOREIRAGV
GOVERNADOR VALADARES
Cadast. em:Julho/2010


Citação:
:
Isso eu entendi. O que não consegui sacar é porque não simplesmente escrever o evento, porque precisa ser dinâmico

Porque isso faz parte de uma macro maior, que funciona dentro de um suplemento do excel. E dentro desta ação do suplemento, essa "questão" é a única coisa que é manual. Resolvendo isso, toda a ação será automática não necessitando de ir sempre VB Project e programar a mesma linha no mesmo evento.

Pablo Moreira

#479405 - 31/01/2018 14:33:11

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Mais ou menos o que pensei que fosse. Notou que esse comportamento se assemelha bastante à o que um vírus faz?

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#479406 - 31/01/2018 14:52:03

PABLOMOREIRAGV
GOVERNADOR VALADARES
Cadast. em:Julho/2010


Última edição em 31/01/2018 14:52:26 por PABLOMOREIRAGV

Citação:
:
Mais ou menos o que pensei que fosse. Notou que esse comportamento se assemelha bastante à o que um vírus faz?

É, interessante, mas, não é o caso..rs... Pode ajudar?


Pablo Moreira

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por PABLOMOREIRAGV em 02/02/2018 11:07:19