Vídeo #44 - Como ocultar apenas UMA pasta de trabalho com VBA
Вставка
- Опубліковано 6 лют 2025
- Se você desenvolve em VBA, com certeza já se deparou com esse problema. Você usa o comando application.visible = false para deixar sua aplicação mais profissional, mas ela oculta todas as planilhas abertas. E se eu te mostrar como ocultar apenas a pasta de trabalho que você precisa, deixando as outras intactas? Vale uma curtida, um comentário ou quem sabe uma inscrição?
Se liguem nessa aula que preparei e fiquem a vontade para aplicar em seu userform.
🆓 Acesse Grátis: organicsheets....
📢Assista o Vídeo: • Vídeo #41 - ATUALIZAÇÃ...
✍️ Se Inscreva no nosso canal: / @organicsheets
Boa Fernando! Obrigado por levar em consideração minha dúvida e a torná-la em video!!!
Que isso, obrigado pela audiência, espero ter ajudado.
Show de aula hein!
Me ajudou muito aqui, só pra constar ganhou + 1 inscrito...rsrsr
A cereja do bolo seria colocar um Msgbox perguntando se o usuário quer ou não acessar a planilha e caso a resposta seja sim, tivéssemos acesso a um userform de login (com usuário e senha), onde após 3 tentativas o arquivo se fechasse por completo.
Bom...até o userform de acesso beleza, o problema está em fazer com que o VBA conte o número de tentativas e feche o arquivo após 3 tentativas erradas.
Obrigado pelas dicas Rogério.
Anotado! 📝
Dica excelente, excepcional. Tive um problema, não sei se foi apenas eu. É que se eu abrir outra planilha com userform aberto, tranquilo. Mas quando fecho a outra planilha, fecha a pasta de trabalho do userform também.
Jura Clegivaldo?
Não sei o que pode ter ocorrido de errado, preciso fazer um teste e revisar o código.
@@OrganicSheets Já sou teu fã. No seu também acontece isso também?
TOP DEMAIS ERA ISSO QUE EU TANTO PRECISAVA , SHOW DE BOLA
Show de bola Daniel, estamos felizes em ajudar.
Cara, você é foda!
Muito obrigado por usar seu tempo para ensinar, salvou meu projeto... Abraços.
Jorel, eu agradeço de coração o feedback. 🚀
Show,. No meu funcionou exatamente do mesmo jeito. Mas percebi que este código serve para planilhas abertas, e se caso for abrir outo arquivo excel após este, ele fica visivel novamente. Ese código funciona perfeitamente para arquivos já abertos, mas para outros após ele ele perde a propriedade e reabre, fica visivel de novo
Boa observação Tricio, terei que rever esse ponto.
Fernando, foi muito útil sim, obrigado pelo suporte e atenção com as nossas dúvidas
Eu que agradeço! 😊
Excelente, vai ser muito útil na execução de muitos projetos!
Espero que sim Gilson, abraços!
Obrigado Fernando !!!!
Parabéns, maravilhoso.
Excelente explicação.
Ajudou bastante. Muito obrigado.
Eu que agradeço Luiz, aquele abraço !
Cara parabéns você é muito bom
😁😁😁
Muito boa explicação, tira uma dúvida minha e se eu não querer que abra a aplicação, tipo ao fechar o userform ele salvar e fechar sem exibir a planilha?
Olá Lucas,
Na sub retorna() basta substituir o Windows(nomeplan).visible = true por Windows(nomeplan).Close SaveChanges:=True e o Application.Visible = True por Thisworkbook.Close SaveChanges:=True.
Assim ele irá fechar a aplicação direto.
😉✔
Tenho um formulário com vários Combobox e Listbox que estão buscando dados na planilha, quando começo a digitar na Listbox a planilha abaixo começa a busca do dado abaixo do formulário, queria uma forma de deixar a planilha abaixo fixa na aba dashboard.
Basta inserir sua rotina e colocar no fim a instrução: plan_dashboard.select
Muito show sua aula, mas não consegui aplicar no meu projeto. E estou com muita dúvida e não tenho à quem pedir SOCORRO!! Teria alguma forma da gente conversar sem querer seja por aqui??
No meu funcionou perfeitamente, porém quando eu fecho a outra planilha ele ta fechando tudo
Com a sua licença @OrganicSheets, fiz no meu código a seguinte maneira para impedir de fechar tudo, quando o intuito é apenas fechar pastas de trabalho avulsas, que não seja a que esta rodando o formulário.
SOLUÇÃO:
EM: EstaPastaDeTrabalho
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim nomeplan As String, nplan As Integer
Dim nplan2 As Integer
nomeplan = ThisWorkbook.Name
nplan = Workbooks.Count
If nplan > 1 Then
Windows(nomeplan).Visible = True
ActiveWorkbook.Close
Cancel = True
End If
If nplan2 > 1 Then
Windows(nomeplan).Visible = False
Else
Application.Visible = False
End If
End Sub
Instalei o Excel mais recente e estou com problema no o Excel 2016 não acontecia isso abria vários arquivos com macros diferentes em instancias separada
Olá Diego, tudo bem?
Obrigado por assistir, existe uma maneira de voltar abrir suas planilhas de Excel em instâncias separadas por padrão.
Dá uma olhada nesse link: docs.microsoft.com/pt-br/office/troubleshoot/excel/force-excel-to-open-new-instance
primeiramente parabéns pelo seu conteúdo, poucas pessoas no UA-cam fazem o que você faz. Esse método é quase perfeito, pois funciona apenas caso eu abra o arquivo primeiro, se eu abrir o meu sisteminha vba primeiro e depois outra planilha não fica oculto e se eu fechar a planilha que abri fica aberto o Excel do meu sisteminha vba. Não teria algum código que abrisse o Excel em uma nova instância no evento Initialize?
Vou revisar, mas deveria funcionar independente de abrir primeiro ou não.
Mas vc pode configurar para forçar a abertura do Excel em nova instância.
docs.microsoft.com/pt-br/office/troubleshoot/excel/force-excel-to-open-new-instance
♥♥♥
Excelente, meu formulário não tem o Excel visível portanto eu fiz para ele fechar direto sem sair de outras planilhas abertas, porém não estou conseguindo abrir meu formulário VBA e abri outra planilha de excel paralela pois o formulário está aberto.
Olá Marcos, obrigado por assistir o vídeo.
Não entendi muito bem o seu problema.
Se preferir, compartilha comigo via whatsapp que eu tento te ajudar. 21968748212.
Show de boal.
😁👍
Se eu tiver uma listbox de busca ele para de funcionar quando oculto a pasta de trabalho?
Sim Wilson, ele funcionará. Porém precisa se atentar à chamada que você está fazendo.
Se utiliza Worksheets("nome da sua planilha") não irá funcionar.
Porém se utilizar o nome da planilha.range... funcionará normal.
Tenho uma dúvida: Tendo duas planilhas abertas é apenas ocultado a planilha conforme comando VBA porém, ao clicar no botão fechar da planilha que não recebeu o comando, ambas planilhas acabam fechando, sendo que o intuito é fechar apenas uma delas. Como faço?
Rogério, pode ser algum bug, teria que analisar mais no detalhe o código.
Irei voltar nesse projeto.
@@OrganicSheets Maravilha!
Muito boas as dicas. Tenho uma dúvida, se você fechar a planilha "Organizador de Pastas" ele fecha também o formulário?
Olá Lucas, obrigado por assistir o vídeo!
Se entendi bem a sua pergunta, a resposta é não. Essa técnica consiste em ocultar apenas a aplicação Excel mantendo apenas os formulários visíveis.
Olá. Foi bastante útil.
Porém tenho um problema de configuração do Excel. A minha planilha de login com gifts não funciona na nova versão do Excel. Eu não sei onde habilitar. Você pode me ajudar? Desde já agradeço.
Fala Wilson, tudo bem?
Mas o que acontece? Dá erro de ptrSafe?
Provavelmente é em relação a versão utilizada, precisará atualizar o código.
Dá uma olhada nesse link: www.tomasvasquez.com.br/forum/viewtopic.php?t=4257
Caso não consiga, irei te ajudar.
Professor, seria possível esconder a tela splash screen do Excel com o VBA?
Olá Luiz, acredito que não.
Pois o VBA somente é executado após o carregamento do Excel.
Vídeo sensacional! Fernando, observei uma coisa não sei se tem como resolver isso, quando você roda mais que uma aplicação (o seu projeto e outra planilha qualquer) quando você fecha a outra planilha a sua aplicação que está com o código volta a exibir a tela do Excel. Tem como resolver isso?
Nunca havia reparado, preciso rever o código 👌 Obrigado pela observação!
Com a sua licença @OrganicSheets, fiz no meu código a seguinte maneira para impedir de fechar tudo, quando o intuito é apenas fechar pastas de trabalho avulsas, que não seja a que esta rodando o formulário.
SOLUÇÃO:
EM: EstaPastaDeTrabalho
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim nomeplan As String, nplan As Integer
Dim nplan2 As Integer
nomeplan = ThisWorkbook.Name
nplan = Workbooks.Count
If nplan > 1 Then
Windows(nomeplan).Visible = True
ActiveWorkbook.Close
Cancel = True
End If
If nplan2 > 1 Then
Windows(nomeplan).Visible = False
Else
Application.Visible = False
End If
End Sub
Obrigado por ajudar, Alcimar! 😊 Quanto mais possibilidades de resolver, melhor. Eu também desenvolvi uma alternativa de solução no vídeo #102. Obrigado pela contribuição! Abraços!
Olá Fernando.
Usando esse código, é possível impedir que aplicação X seja aberto em duplicidade? Isto é, se a aplicação X já está aberto, mas minimizado, e caso clique em abrir novamente, aparece uma mensagem informando que a aplicação X já está aberta e impedir abertura de uma aplicação Y ?
Olá Gilson, não entendi muito bem o raciocínio, poderia explicar de outra forma?
@@OrganicSheets quero impedir que o usuário não abra o programa duas vezes ao mesmo tempo
Cenário: minha aplicação X foi aberta através de um clic sobre o ícone dela. Mas então eu clico novamente no ícone e quero que apareça a mensagem de que a aplicação X já está aberta, e seja impedido de continuar.
Então, sugere alguma coisa para resolver e impedir abertura em duplicidade?
Opa Fernando, muito obrigado por compartilhar seus ensinamentos!
Será se consegue me ajudar? estou me aperfeiçoando em vba, porém, ultimamente tenho batido cabeça com uma coisa:
Sempre que o forms está aberto e tem outra planilha aberta, eu preciso estar com a planilha dele aberta pra que puxe os dados certos, do contrário ele dá erro, pq ele procura em uma planilha que não existe esses dados..
Já tentei algumas coisas, mas até o momento sem sucesso.
Fala Marcos, o ideal é sempre utilizar os codenames da planilha para referenciar melhor onde os dados precisam ser buscados. Os elementos da planilha têm "nome" que é o apelido do elemento e tem o "codename" que é o nome interno adotado pelo VBA. Sugiro que passe a utilizar esses codenames e renomear os elementos dentro do VBE.
Outra opção é forçar a abertura da planilha em uma outra instância, assim o Excel dessa instancia irá interagir apenas com a planilha ideal.
Espero ter ajudado, aqui no canal eu mostro como gerar um instalador para projeto em VBA e lá mostro como criar um executável que sempre gerará uma instancia única para seu projeto.
@@OrganicSheets Será se dá pra colocar o excel pra abrir somente o vba em outra instancia? ou seja, planilhas proximas abrem na instancia anterior rsrs conseguiu entender?
Voltei! Desculpa a demora. Então, não entendi muito bem... kkkkk Como assim planilhas próxima? E instancia anterior? Se eu entender essa parte, acho que conseguirei te ajudar... 😅
Como abrir uma pasta de trabalho (USERFORM) e não INTERFERIR em outro pasta já aberta SEM SER NECESSÁRIO abrir em outra instância do Excel (Trabalhar com as duas sem interferência)? Existe algum código?
Cris, o ideal seria abrir essa aplicação em uma nova instancia do Excel, ainda estou em busca de uma solução para fazer isso automaticamente. Mas você consegue forçar o Excel sempre abrir uma instancia nova a cada planilha executada, mas isso é feito lá na chave de registro do Windows.
Espero conseguir ajudá-lo.
Aquele abraço.
@@OrganicSheets valeu amigo, conseguir sem precisar abrir em nova instância
foi
Boa Rodrigão