Ir ao conteúdo
  • Cadastre-se

Excel VBA - Abrir outra planilha como "Somente Leitura"


Ir à solução Resolvido por Edson Luiz Branco,

Posts recomendados

Pessoal, boa noite.

 

Eis que tenho a seguinte situação: Tenho uma planilha (Materiais Segregados) que busca os dados em outra (Registro de Recebimento), e para que não fique cheia de links externos eu uso um copiar colar por .Offset no VBA.

O que acontece: As vezes o usuário que está usando a planilha de Recebimento também fará o uso da Planilha de Segregados mas quando isso ocorre, aparece a seguinte mensagem:

image.png.8cc1e3d726a2d7ff4b84f46608351f3c.png

Caso clique em sim, perderá tudo o que estava fazendo no Recebimento, caso clique em Não, acaba abrindo o depurador (Ainda não aprendi usar o On Error GoTo).

image.png.1e46bfc9a7d692adcc6654b54fc7a2e9.png

 

A solução que eu tentei foi a seguinte: Usar o ReadOnly: = True no comando Workbooks.Open mas não funcionou:

 

Private Sub pesquisar_btn_Click()

    Dim EmpFound As Range
    Dim Wb As Workbook
    
    Application.ScreenUpdating = False
 
    Set Wb = Excel.Application.Workbooks.Open("\\ln008svr03\processos\Projeto BPF Bonsucesso\10_Recebimento\RO.BN.05_002_Registro de Recebimento 2018.xlsb", ReadOnly:=True)
    Wb.Sheets("Registro de Recebimento 2018").Activate

Alguém pode me ajudar a contornar isso?

 

Link para o comentário
Compartilhar em outros sites

Bom dia, @diego_janjao

 

Tô estranhando isso que tá acontecendo contigo.

Quando você tem um ArquivoA em rede e o Usuário1 na Máquina1 já está com ele aberto e você, Usuário2 na Máquina2 abre-o via macro da maneira que você descreveu, com ReadOnly = True, o arquivo abre normalmente em modo Somente Leitura sem emitir nenhum aviso (testei aqui e rodou assim).

Será que o ArquivoA já não estava aberto na sua Máquina2 ? 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Edson Luiz Branco bom dia. Quando ele está em outra máquina aberto funciona perfeitamente, pois o que ele faz é abrir o arquivo como somente leitura, pega os dados, fecha a planilha de recebimento sem salvar e tá tudo certo.

 

Esqueci de mencionar que no fim do meu evento ele fecha o Wb mas enfim.

 

Se eu estiver com o recebimento aberto sem modificações, ele considera o Workbook.Open já concluído, copia e fecha. Mas se tiver alguma modificação vai aparecer a mensagem conforme a imagem 1.

Pensando agora, acho que fica difícil abrir como somente leitura de já estiver aberto porque já terá um arquivo (editável que eles usam) aberto para lançar os recebimentos.

 

Será se não dá pra, via VBA, eu criar uma cópia de Recebimento, abrir essa cópia, pegar os dados, fechar a cópia e apagar a cópia?

Link para o comentário
Compartilhar em outros sites

  • Solução
3 horas atrás, diego_janjao disse:

Será se não dá pra, via VBA, eu criar uma cópia de Recebimento, abrir essa cópia, pegar os dados, fechar a cópia e apagar a cópia?

 

Tente isso:

Private Sub pesquisar_btn_Click()
    Const caminho = "\\ln008svr03\processos\Projeto BPF Bonsucesso\10_Recebimento\"
    Const arquivo = "RO.BN.05_002_Registro de Recebimento 2018.xlsb"
    Dim arqTemp As Object
  Dim EmpFound As Range
  Dim Wb As Workbook
  Application.ScreenUpdating = False
    With CreateObject("Scripting.FileSystemObject")
      If .FileExists(caminho & arquivo) Then
        .CopyFile Source:=caminho & arquivo, Destination:=caminho & arquivo & "(Cópia)", _
                  OverWriteFiles:=True
        Set arqTemp = .GetFile(caminho & arquivo & "(Cópia)")
      Else
        Exit Sub
      End If
      Set Wb = Workbooks.Open(arqTemp.Path)
      Wb.Sheets("Registro de Recebimento 2018").Activate
      '.....
      '.....
      '.....
      '.....
      Wb.Close SaveChanges:=False
      arqTemp.Delete True
    End With
  Set arqTemp = Nothing: Set EmpFound = Nothing: Set Wb = Nothing
End Sub

 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!