Uma macro do Excel para determinar se uma pasta de trabalho está aberta

Uma macro do Excel para determinar se uma pasta de trabalho está aberta

Ao pensar em abrir automaticamente as pastas de trabalho do Excel, considere o que pode acontecer se você tentar abrir uma pasta que já está aberta. No mundo não VBA, o Excel tenta abrir o arquivo novamente, com a mensagem exibida avisando que todas as alterações não salvas serão perdidas. Você pode se proteger contra tal ocorrência verificando se um determinado arquivo já está aberto antes de tentar abri-lo novamente.

Uma macro do Excel para determinar se uma pasta de trabalho está aberta

Evite esta mensagem de aviso.

Como funciona a macro

A primeira coisa a observar sobre essa macro é que ela é uma função, não um procedimento Sub. Como você verá, transformar essa macro em uma função permite que você passe qualquer nome de arquivo a ela para testar se esse arquivo já está aberto.

A essência deste código é simples. Você está testando um determinado nome de arquivo para ver se ele pode ser atribuído a uma variável de objeto. Apenas pastas de trabalho abertas podem ser atribuídas a uma variável de objeto. Ao tentar atribuir uma pasta de trabalho fechada à variável, ocorre um erro.

Se a pasta de trabalho fornecida puder ser atribuída, a pasta de trabalho estará aberta; se ocorrer um erro, a pasta de trabalho será fechada.

Função FileIsOpenTest (TargetWorkbook As String) As Boolean
'Passo 1: Declare suas variáveis
    Dim TestBook As Workbook
'Passo 2: Diga ao Excel para retomar em caso de erro
    On Error Resume Next
'Etapa 3: Tente atribuir a pasta de trabalho de destino ao TestBook
    Definir TestBook = Workbooks (TargetWorkbook)
'Etapa 4: Se nenhum erro ocorreu, a pasta de trabalho já está aberta
    Se Err.Number = 0 Then
    FileIsOpenTest = True
    Outro
    FileIsOpenTest = False
    Fim se
Função Final

A primeira coisa que a macro faz é declarar uma variável String que conterá o nome do arquivo que o usuário escolher. TestBook é o nome da sua variável String.

Na Etapa 2, você informa ao Excel que pode haver um erro ao executar este código e, no caso de um erro, retoma o código. Sem essa linha, o código simplesmente para quando ocorre um erro. Novamente, você testa um determinado nome de arquivo para ver se ele pode ser atribuído a uma variável de objeto. Se a pasta de trabalho fornecida pode ser atribuída, ela está aberta; se ocorrer um erro, ele é fechado.

Na Etapa 3, você tenta atribuir a pasta de trabalho fornecida à variável do objeto TestBook. A pasta de trabalho que você tenta atribuir é uma variável String chamada TargetWorkbook. TargetWorkbook é passado para a função nas declarações da função (consulte a primeira linha do código). Essa estrutura elimina a necessidade de codificar um nome de pasta de trabalho, permitindo que você o transmita como uma variável.

Na Etapa 4, você simplesmente verifica se ocorreu um erro. Se um erro não ocorreu, a pasta de trabalho está aberta, então você define FileIsOpenTest como True. Se ocorrer um erro, a pasta de trabalho não será aberta e você definirá FileIsOpenTest como False.

Novamente, essa função pode ser usada para avaliar qualquer arquivo que você passar para ela, por meio de seu argumento TargetWorkbook. Essa é a beleza de colocar a macro em uma função.

A macro a seguir demonstra como implementar essa função. Aqui, você chama a nova função FileIsOpenTest para se certificar de que o usuário não pode abrir um arquivo já aberto:

Sub Macro1 ()

'Passo 1: Definir uma variável String

    Dim FName como variante

    Dim FNFileOnly As String

'Etapa 2: o método GetOpenFilename ativa a caixa de diálogo

    FName = Application.GetOpenFilename (_

            FileFilter: = "Pastas de trabalho do Excel, *. Xl *", _

            Title: = "Escolha uma pasta de trabalho para abrir", _

            MultiSelect: = False)

'Passo 3: Abra o arquivo escolhido se ainda não estiver aberto

    If FName <> False Then

    FNFileOnly = StrReverse (Left (StrReverse (FName), _

                 InStr (StrReverse (FName), ") - 1))

Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet é uma plataforma de trabalho dinâmica que permite gerenciar projetos, criar fluxos de trabalho e colaborar com sua equipe.

SharePoint

SharePoint

SharePoint é um sistema de colaboração baseado na web que usa uma variedade de aplicativos de fluxo de trabalho, bancos de dados de “lista” e outros componentes da web, bem como recursos de segurança para dar controle ao trabalho conjunto de grupos empresariais.

Calendário Perpétuo 1.0.38/1.0.36

Calendário Perpétuo 1.0.38/1.0.36

Van Nien Calendar é um aplicativo de visualização de calendário em seu telefone, ajudando você a ver rapidamente a data lunisolar em seu telefone, organizando assim seu trabalho importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

O Microsoft Outlook é um aplicativo comercial e de produtividade desenvolvido pela Microsoft Corporation.

Clique para cima

Clique para cima

ClickUp é uma das plataformas de produtividade mais bem avaliadas para qualquer empresa. Grandes empresas como Google, Booking.com, San Diego Padres e Uber usam ClickUp para aumentar a produtividade no local de trabalho.

Visualizador PDF-XChange 2.5.322.10

Visualizador PDF-XChange 2.5.322.10

PDF se tornou um formato comumente usado para leitura, criação e envio de documentos de texto. Por sua vez, tem havido um aumento no número de programas utilizados para este tipo de documentação. PDF-XChange Viewer está entre um número crescente de visualizadores de PDF.

Apache Open Office

Apache Open Office

Apache OpenOffice oferece um conjunto completo de aplicativos Office que rivalizam com o Microsoft 365, especialmente em Excel, PowerPoint e Word. Ele permite que você gerencie seus projetos de forma mais eficaz e suporta diversos formatos de arquivo.

Baixar iTaxviewer 1.8.7

Baixar iTaxviewer 1.8.7

O software iTaxViewer é o software de leitura de arquivos XML mais popular atualmente. Este software é uma aplicação para leitura de declarações fiscais eletrónicas em formato XML da Direção Geral de Impostos.

Leitor de PDF Nitro

Leitor de PDF Nitro

Nitro PDF Reader é um prático editor de PDF que cobre todas as tarefas básicas que a maioria das pessoas realiza todos os dias com documentos PDF.

Leitor Foxit 12

Leitor Foxit 12

Foxit Reader é principalmente um leitor de PDF e também permite criar arquivos PDF, assiná-los, editá-los e adicionar anotações. Funciona em sistemas operacionais, existem plugins para diversos programas do pacote Microsoft Office.