Esqueceu sua senha? Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

Abrir arquivo com células nomeadas

Esclarecimentos e dúvidas sob o Modelo de Aplicativo de Cadastro em VBA no Microsoft Excel publicado no site e blog http://www.tomasvasquez.com.br
NERI INACIO
Colaborador
Colaborador
Mensagens: 62
Registrado em: Sáb Fev 27, 2016 7:31 pm

Abrir arquivo com células nomeadas

Mensagem por NERI INACIO » Qui Nov 29, 2018 2:36 pm

Tenho um comando para abrir o meu arquivo que é assim:
Workbooks.Open ("C:\Users\Cliente-PC\Desktop\Nova pasta\DADOS\ArquivoEndereçodiferente.xlsx")

Agora quero colocar ele mais dinâmico e por isto nomeei uma célula com o nome de "CaminhoCompleto" e na mesma tenho o uma fórmula que capta o endereço completo do arquivo:
C:\Users\Cliente-PC\Desktop\Nova pasta\DADOS\ArquivoEndereçoDiferente.xlsx
Ou seja, é o mesmo que consta no primeiro comando.

Pergunto: como posso alterar o primeiro comando, pois quero inserir a célula nomeada:
ATUAL: Workbooks.Open ("C:\Users\Cliente-PC\Desktop\Nova pasta\DADOS\ArquivoEndereçodiferente.xlsx")
NOVO: Workbooks.Open sheets("CaminhoCompleto")

Pensei que funcionaria assim, porém não está correto. Como devo fazer?



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1117
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Bragança Paulista - SP

Re: Abrir arquivo com células nomeadas

Mensagem por Mikel Silveira Fraga » Qua Dez 19, 2018 12:49 am

Neri, boa noite meu amigo. Tudo bem contigo!?

Nesse seu caso, realmente o comando esta incorreto. Se eu entendi bem, você colocou o endereço do arquivo em uma área nomeada, chamada CaminhoCompleto, certo!?!?!?

Se a resposta para pergunta acima for Sim, substitua o Sheets por Range, ficando assim:

Código: Selecionar todos

Workbooks.Open Range("CaminhoCompleto")
Veja se irá funcionar e nos retorne.

Abraços e boa noite por ai.


Gostou da dica? Clique no JOIA no topo da mensagem.
Esclareceu suas dúvidas? Acrescente ao título do tópico a expressão: [RESOLVIDO].
Orientações sobre o fórum, acesse aqui.

Mikel Silveira Fraga
E-mail: mikel-sf@hotmail.com | Skype: mikelsf | Linked In

NERI INACIO
Colaborador
Colaborador
Mensagens: 62
Registrado em: Sáb Fev 27, 2016 7:31 pm

Re: Abrir arquivo com células nomeadas

Mensagem por NERI INACIO » Qui Dez 27, 2018 2:30 pm

Boa tarde Mikel
Desculpe responder somente agora. Estava fora e agora lhe respondo.

Usei os comandos que foram colocados no exemplo:

Código: Selecionar todos

Private Sub AtualizarArquivo(ByVal ReadOnly As Boolean)
    Dim caminhoCompleto As String
    'fecha o arquivo de dados e tenta abrí-lo
    'guarda o caminho
    caminhoCompleto = wbCadastro.FullName
    wbCadastro.Saved = True
    wbCadastro.Close SaveChanges:=False
    
    'abre o arquivo em modo escrita
    Set wbCadastro = Workbooks.Open(filename:=caminhoCompleto, ReadOnly:=ReadOnly)
    
    'oculta a janela
    wbCadastro.Windows(1).Visible = False
    
    'reatribui a planilha de cadastro
    Set wsCadastro = wbCadastro.Worksheets(nomePlanilhaCadastro)
End Sub

'------------------------------------------------------------------------------------------
Private Sub DefinePlanilhaDados()
    Dim abrirArquivo As Boolean
    Dim wb As Workbook
    Dim caminhoCompleto As String
    Dim ARQUIVO_DADOS As String
    Dim PASTA_DADOS As String
    
    abrirArquivo = True
    
    ARQUIVO_DADOS = Range("ARQUIVO_DADOS").Value
    PASTA_DADOS = Range("PASTA_DADOS").Value
    
    If ThisWorkbook.Name <> ARQUIVO_DADOS Then
        'monta a string do caminho completo
        If PASTA_DADOS = vbNullString Or PASTA_DADOS = "" Then
            caminhoCompleto = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, vbNullString) & ARQUIVO_DADOS
        Else
            If Right(PASTA_DADOS, 1) = "\" Then
                caminhoCompleto = PASTA_DADOS & ARQUIVO_DADOS
            Else
                caminhoCompleto = PASTA_DADOS & "\" & ARQUIVO_DADOS
            End If
        End If
        
        'verifica se o arquivo não está aberto
        For Each wb In Application.Workbooks
            If wb.Name = ARQUIVO_DADOS Then
                abrirArquivo = False
                Exit For
            End If
        Next
        
        'atribui o arquivo
        If abrirArquivo Then
            Set wbCadastro = Workbooks.Open(filename:=caminhoCompleto, ReadOnly:=True)
        Else
            Set wbCadastro = Workbooks(ARQUIVO_DADOS)
        End If
    Else
        Set wbCadastro = ThisWorkbook
    End If
    
    Set wsCadastro = wbCadastro.Worksheets(nomePlanilhaCadastro)
    
    'oculta o arquivo de dados
    wbCadastro.Windows(1).Visible = False
    
End Sub
e mais: no botão de Excluir, antes desta ação faço a conferência se já foi utilizado para algum registro. Neste caso utilizo:

Código: Selecionar todos

Private Sub optexcluir_Click()
Dim Caminho As String
Dim Arquivo As String


Caminho = Plan1.Range("b3").Value 'Em A1 vc coloca o caminho do arquivo
'Arquivo = Plan1.Range("b2").Value 'Em A1 vc coloca o caminho do arquivo


Workbooks.Open Caminho

Call DefinePlanilhaDados
    
    
    If txtCodigo.Text <> vbNullString And txtCodigo.Text <> "" Then
        Call DesabilitaBotoesAlteracao
         MsgBox "Modo de exclusão. Confira o dados do registro antes de excluí-lo", vbInformation + vbOKOnly, "Cliente"
    Else
        MsgBox "Não há registro a ser excluído", vbInformation + vbOKOnly, "Cliente"
    End If
    

Windows(NomeArquivo).Visible = False  'oculta o arquivo de dados
 'Endereço q funciona
    Workbooks(NomeArquivo).Sheets("Auxiliar").Range("B6").Value = txtCodigo.Text
    txtlancamentos.Text = Workbooks(NomeArquivo).Sheets("Auxiliar").Range("c6").Value
 
End Sub
Deixo aqui postado para que se alguém precisar, ja tenha o exemplo.

Obrigado pela ajuda. Vamos em frente...



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder