Página 1 de 1

Abrir arquivo com células nomeadas

Enviado: Qui Nov 29, 2018 2:36 pm
por NERI INACIO
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?

Re: Abrir arquivo com células nomeadas

Enviado: Qua Dez 19, 2018 12:49 am
por Mikel Silveira Fraga
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.

Re: Abrir arquivo com células nomeadas

Enviado: Qui Dez 27, 2018 2:30 pm
por NERI INACIO
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...