Notifications
Clear all

Passar o valor de uma variável para outra, em outro arquivo

2 Posts
2 Usuários
0 Reactions
1,484 Visualizações
(@rjunior)
Posts: 6
Active Member
Topic starter
 

Boa tarde!

Gostaria de saber se tem como passar o valor de uma variável da macro de um arquivo, para uma macro em outro arquivo. Obs: Os dois ficam abertos ao mesmo tempo.

Desde já agradeço.

 
Postado : 15/03/2018 10:47 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Boa noite, RJunior

O método que acho mais simples para isso é fazer referência ao projeto do arquivo que fornecerá a variável. Lembre-se que as variáveis ou constantes têm que ser Globais.

Exemplo: digamos que vc está criando uma macro na Pasta1.xlsxm e quer ler/alterar uma variável (MinhaVar ) ou ler uma constante (MinhaConst) que está no Módulo1 da Pasta2.xlsm e que, além disso, o nome do Projeto na Pasta2 ao invés de ser VBAProject que é o padrão, seja digamos VBAProjP2.

Então, no Módulo1 da Pasta2 vc teria declarado sua variável em nível Global como:
Public MinhaVar
Public Const MinhaConst = "Estou Na Pasta2"

Na Pasta1 (aberta), no VBE, vá em Ferramentas > Referências e localize e marque o projeto VBAProjP2

Agora, é só usar na sua macro da Pasta1 as variáveis/constantes da Pasta2. Exemplo:

Sub Teste()
  Debug.Print VBAProjP2.MinhaVar 'Ou VBAProjP2.Módulo1.MinhaVar
  Debug.Print VBAProjP2.MinhaConst
  VBAProjP2.MinhaVar = "Variável alterada pela Pasta1"
  Debug.Print VBAProjP2.MinhaVar
End Sub

Vc deve ter notado que ainda por cima ganhou de brinde o IntelliSense ao construir as expressões ;)

 
Postado : 15/03/2018 3:54 pm