Usuário com melhor resposta
Verificar se planilha ja esta aberta

Pergunta
-
Pessoal na empresa em que eu trabalho estou tendo um grande problema. Trabalhamos com uma planilha em rede, e alguns usuários não percebem que abriram uma cópia como leitura, e acabam fazendo alteração nela. Gostaria de saber se tem como criar uma rotina para verificar se o arquivo EXCEL já esta aberto, e se estiver emitir aviso.
Respostas
-
Guiu,
Você pode usar o evento SheetChange do Workbook e verificar se o arquivo é readonly.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If ThisWorkbook.ReadOnly = True Then MsgBox "Sua Mensagem" End If End Sub
- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator quinta-feira, 26 de junho de 2014 02:04
- Marcado como Resposta Guiu domingo, 29 de junho de 2014 04:20
Todas as Respostas
-
Habilite a opção: Pasta Compartilhada.
Para habilitar este recurso, abra a planilha que deseja compartilhar.
Navegue até a aba "Revisão"
Clique no botão "Compartilhar Planilha / Pasta de Trabalho"
Após feito isso será aberta uma nova janela, marque a opção "Permitir alterações por mais de um usuário ao mesmo tempo"
Nesta mesma janela, há uma aba chamada "Avançado", onde você pode habilitar ou controlar o comportamento de opções avançadas.
Mas basicamente a planilha já poderá ser utilizada por mais de um usuário ao mesmo tempo.
No final, salve a planilha e realize um teste.
Você pode notar quando abre uma planilha compartilhada, olhando sobre a barra de titulos, la você vai encontrar a palavra escrita "COMPARTILHADA"
-
-
Tem esta forma, mas não sei se o comportamento é o que você espera.
Esta macro não roda em módulos, tem que ser inserida em: "EstaPasta_de_trabalho"
Private Sub Workbook_Open() 'caso o valor da célula a1 da planilha 1 seja igual a usando. Fecha a planilha. If (Sheets("Plan1").Range("a1").Value) = "usando" Then Workbooks.Close Else Caso o valor seja igual a vazio, insere o valor usando. Sheets("Plan1").Range("a1").Value = "usando" ThisWorkbook.Save End If End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Ao fechar a plnilha, altera o valor para vazio e libera para outros usuários Sheets("Plan1").Range("a1").Value = "" End Sub
Abçs
-
Guiu,
Você pode usar o evento SheetChange do Workbook e verificar se o arquivo é readonly.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If ThisWorkbook.ReadOnly = True Then MsgBox "Sua Mensagem" End If End Sub
- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator quinta-feira, 26 de junho de 2014 02:04
- Marcado como Resposta Guiu domingo, 29 de junho de 2014 04:20
-