Ir ao conteúdo
  • Cadastre-se

Vba - variavel referenciando celula


volnei.p

Posts recomendados

Ola, estou com dificuldade em uma planilha onde toda vez que se é alterado o nome do arquivo ou de alguma aba, consequentemente ocasiona erros nas macros.

Gostaria de deixar uma aba exclusiva para estas referencias e nas macros utilizar variaveis para estas celulas. Desta forma, os usuarios não interfeririam diretamente nas macros, somente nas celulas da aba de referencia.

Desde já agradeço qualquer ajuda !!!

Segue exemplo de uma das macros: (destacado o ponto com problema)

'---------------------------------

Sub MSGTigre()

Dim ARQ As String

ARQ = Worksheets("RESUMO").Range("AA28").Value

Resp = MsgBox("Atualizar Informações de Terceiros?", vbQuestion + vbYesNo, "Planilha de Controle Terceiro")

If Resp = vbYes Then

'Abre e fecha planilha de controle da tigre

Workbooks.Open Filename:= _

"\\sc-s001\Departamental\Logística\Deivison\Depósito Terceiros\controle dep tigre.xlsM" _

, ReadOnly:=True, UpdateLinks:=False

Call Tigre

Call Aliança

'Call MAX

Windows("controle dep tigre.xlsM").Activate

ActiveWindow.Close False

Else

Exit Sub

End If

End Sub

Sub Tigre()

Windows("controle dep tigre.xlsM").Activate

Sheets("NOTAS TIGRE").Select

Range("Q3:Q5").Select

Selection.Copy

Workbooks(ARQ).Activate

Sheets("RESUMO").Select

Range("M9").Select

Selection.PasteSpecial Paste:=xlPasteValues

End Sub

Sub Aliança()

Windows("controle dep tigre.xlsM").Activate

Sheets("NOTAS ALIANÇA").Select

Range("Q3:Q5").Select

Selection.Copy

Windows(ARQ).Activate

Sheets("RESUMO").Select

Range("P9").Select

Selection.PasteSpecial Paste:=xlPasteValues

End Sub

'---------------------------------

Link para o comentário
Compartilhar em outros sites

Boa noite!!

Se você abrir o EditorVBA (Alt + F11), vera que o arquivo com as abas tem dois nomes.

Ex:

Plan1 ("RESUMO")...ou seja você pode referenciar a guia de duas formas

Ex: Sheets("RESUMO").Select <-- dessa forma, se o usuário mudar o nome da guia, vai gerar erro

Ou Plan1.Select <-- dessa forma, se o usuário mudar o nome da guia, NÃO vai gerar erro.

Link para o comentário
Compartilhar em outros sites

Zinhovba, obrigado pelo dica da referencia da planilha.

laercionb, obrigado pela atenção.

O problema apresentado foi solucionado, uma vez que a variavel estava limitada apenas a macro MSGTigre, referenciei a variavel fora de uma macro e informei na MSGTigre a celula (AA28) que alimentava a informação da variavel.

Segue o código que esta funcionando (+cometarios):

Obs.: Talvez até tenha uma forma mais simplificada de escrever este código, porém meus conhecimentos "ainda" são limitados !!!!:D

'Referencia da variavel fora de qualquer macro.

Public ARQ As String

'>>> Inicio das macros.....

Sub MSGTigre()

' Vinculando a celula e a plan que alimentará a variavel.....

ARQ = Sheets("RESUMO").Range("AA28").Value

Resp = MsgBox("Atualizar Informações de Terceiros?", vbQuestion + vbYesNo, "Planilha de Controle Terceiro")

If Resp = vbYes Then

'Abre e fecha planilha de controle da tigre

Workbooks.Open Filename:= _

"\\sc-s001\Departamental\Logística\Deivison\Depósito Terceiros\controle dep tigre.xlsM" _

, ReadOnly:=True, UpdateLinks:=False

Call Tigre

Call Aliança

Windows("controle dep tigre.xlsM").Activate

ActiveWindow.Close False

Else

Exit Sub

End If

ARQ = Empty '<<<... Limpa a informação vinculada a variavel.

End Sub

' Segunda macro, a variavel ainda esta com a informação da celula AA28 da plan RESUMO....

Sub Tigre()

Windows("controle dep tigre.xlsm").Activate

Sheets("NOTAS TIGRE").Select

Range("Q3:Q5").Select

Selection.Copy

Windows(ARQ).Activate '<<<... Busca a informação da variavel, indicando qual arquivo aberto deve ser selecionado.

Sheets("RESUMO").Select

Range("M9").Select

Selection.PasteSpecial Paste:=xlPasteValues

End Sub

' Terceira macro, a variavel ainda esta com a informação da celula AA28 da plan RESUMO....

Sub Aliança()

Windows("controle dep tigre.xlsm").Activate

Sheets("NOTAS ALIANÇA").Select

Range("Q3:Q5").Select

Selection.Copy

Windows(ARQ).Activate '<<<... Busca a informação da variavel, indicando qual arquivo aberto deve ser selecionado.

Sheets("RESUMO").Select

Range("P9").Select

Selection.PasteSpecial Paste:=xlPasteValues

End Sub

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!