ATENÇÃO NOVOS USUÁRIOS

Se registrou recentemente? Seu cadastro será avaliado e mendiante aprovação, a conta será ativada e você poderá usufruir do fórum. O tempo de avaliação gira em torno de 24 a 48 horas.

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.

Endereço de rede digitado na célula

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

Endereço de rede digitado na célula

Mensagem por NERI INACIO » Qua Nov 21, 2018 4:29 pm

Tenho um comando assim:

Código: Selecionar todos

   Workbooks.Open ("C:\Users\Cliente-PC\Desktop\Nova pasta\DADOS\ArquivoEndereçoDireferente.xlsx")
   Worksheets("Planilha2").Range("B2").Value = Valor_a_ser_transferido.Text
    VlrRegastado.Text = Worksheets("Planilha2").Range("B4").Value
porém quero simplificar isto. Então nomeei uma célula "CaminhoCompleto". na Célula digitei o seguinte: C:\Users\Cliente-PC\Desktop\Nova pasta\DADOS\ArquivoEndereçoDireferente.xlsx que é exatamente o endereço que tinha no início do comando anterior.
Quero substituir a primeira linha para algo assim:

Código: Selecionar todos

    Workbooks.Open ("CaminhoCompleto")
    Worksheets("Planilha2").Range("B2").Value = Valor_a_ser_transferido.Text
     VlrRegastado.Text = Worksheets("Planilha2").Range("B4").Value
Porém não está funcionando. Alguém consegue me ajudar a dar o comando correto?



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
Reinaldo
Jedi
Jedi
Mensagens: 1448
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Endereço de rede digitado na célula

Mensagem por Reinaldo » Qua Nov 21, 2018 6:15 pm

Experimente

Código: Selecionar todos

Workbooks.Open (Worksheets("Planilha2").Range("CaminhoCompleto") )...
ou ainda crie uma variavel, por exemplo Path, e atribua a essa variavel o valor da celula
Algo +/-assim

Código: Selecionar todos

Dim Path as string
Path= Worksheets("Planilha2").Range("CaminhoCompleto") 'ou Path=Worksheets("Planilha2").Range("A1")
Workbooks.Open (Path)...


Reinaldo
:oops: :D :mrgreen: :geek:

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

Re: Endereço de rede digitado na célula

Mensagem por NERI INACIO » Qui Nov 22, 2018 11:36 am

Reinaldo

Se possível dê uma olhada no anexo que eu estou tentando fazer funcionar:
No arquivo Origem.Xlsm está o formulário.

Tem o arquivo ArquivoEndereçoDireferente.xlsx que é a planilha que recebe os dados (B2), processa e retorna para o formulário a célula (B4).

Infelizmente não estou conseguindo fazer algo que parece fácil. Veja que tem duas formas que funcionam e estão no formulário destacadas como as que funcionam.

O que eu preciso fazer é colocar a célula que nomeei como "CaminhoCompleto" e inserí-la na fórmula, pois isto evitará que entre no programa para alterar.
Pode me ajudar?
Anexos
Nova pasta.rar
(24.44 KiB) Baixado 166 vezes



Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1448
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Endereço de rede digitado na célula

Mensagem por Reinaldo » Qui Nov 22, 2018 12:23 pm

Experimente:
Altere de:

Código: Selecionar todos

Workbooks.Open(Worksheets("Planilha2").Range("CaminhoCompleto")).Range("B2").Value = Valor_a_ser_transferido.Value
Para:

Código: Selecionar todos

Workbooks.Open (Worksheets("Planilha1").Range("CaminhoCompleto"))
Obs.: Atente que o nome da planilha (no seu codigo "Planilha2") deve ser alterado de acordo com sua aplicação.Em seu modelo não há Planilha2 somente "Planilha1"


Reinaldo
:oops: :D :mrgreen: :geek:

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.


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

Re: Endereço de rede digitado na célula

Mensagem por NERI INACIO » Qui Nov 22, 2018 2:23 pm

Reinaldo
Alterei conforme a sua orientação e deu certo.
Mas tem um porém: preciso fazer um teste para ver se a planilha já está aberta, veja que no início ele abre a planilha, e sempre tenta fazer isto, em todos os dados que envio.

Ou seja, na primeira vez funciona. Na segunda ele tenta abrir o arquivo que já está aberto, gerando um erro.

Código: Selecionar todos

' PARA ENVIAR O VALOR
Workbooks.Open (Worksheets("Planilha1").Range("CaminhoCompleto"))
Worksheets("Planilha2").Range("B2").Value = Valor_a_ser_transferido.Text

' PARA BUSCAR O RESULTADO
VlrRegastado.Text = Worksheets("Planilha2").Range("B4").Value



Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1448
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Endereço de rede digitado na célula

Mensagem por Reinaldo » Sex Nov 23, 2018 10:32 am

Não costumo utiliza/efetuar esse teste;abaixo uma função que se propõe a fazer-lo; não sei o autor e não utilizei,mas veja se auxilia

Código: Selecionar todos

Function blPastaTrabalhoAberta(s As String) As Boolean

    Dim wb As Workbook

    On Error Resume Next
    Set wb = Workbooks(s)
    On Error GoTo 0
    
    If wb Is Nothing Then
        blPastaTrabalhoAberta = False
    Else
        blPastaTrabalhoAberta = True
    End If

End Function
Abaixo um exemplo de como e feita a utilização

Código: Selecionar todos

Sub Teste()
    Dim s As String
    
    s = "CalculoComData.xls" '"teste.xlsx"
    If blPastaTrabalhoAberta(s) Then
        MsgBox "A pasta de trabalho '" & s & "' está aberta." _
          , vbInformation _
          , "Informação"
    Else
        MsgBox "A pasta de trabalho '" & s & "' não está aberta no momento." _
          , vbCritical _
          , "Erro"
    End If
End Sub


Reinaldo
:oops: :D :mrgreen: :geek:

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

Re: Endereço de rede digitado na célula

Mensagem por NERI INACIO » Sex Nov 23, 2018 5:31 pm

Reinaldo muito obrigado pela postagem do exemplo.
Eu preciso fazer este teste pois, se colocar para abrir o arquivo sempre, na primeira vez funciona corretamente, porém ao colocar na segunda vez, ele dá um erro pois tem o comando de abrir novamente e ele já estará aberto.
A menos que tenha outra opção de 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.


Responder