8
respostas

[Dúvida] Private Sub

Me parece que a opção Private Sub além de ocultar na relação de macros, também vincula o comando a uma determinada planilha. Estou desenvolvendo um projeto onde coleto dados em várias planilhas e descarrego os dados coletados, sequencialmente em uma única planilha. O detalhamento das worksheets no código tem sido um grande desafio...

No Mac a Private Sub corrige um erro

https://support.microsoft.com/pt-br/topic/erro-a-vari%C3%A1vel-usa-um-tipo-de-automa%C3%A7%C3%A3o-sem-suporte-no-editor-do-visual-basic-no-excel-para-mac-c3125bf3-c30b-4d62-be42-d2f1bec0e5ad

8 respostas

Oii, Matheus! Tudo bem?

Para que eu possa te ajudar de um jeito assertivo, poderia passar alguns detalhes, por favor?

  • Quais passos você estava executando que surgiu o erro?
  • Qual é a sua dúvida com relação ao Private Sub? É conceitual? É sobre aplicação, na prática?
  • Compartilhe uma imagem da sua tela no momento que o erro surge, por favor.

Dessa forma eu consigo ter a mesma visibilidade que você e poderei te ajudar com possíveis soluções.

Agradeço e fico à disposição!

Como evitar de aplicar o código na planilha errada e perder dados? Tem dado erro ao executar o código quando a planilha origem não está selecionada e também quando a planilha destino não está vazia. O segundo erro eu corrigi limpando os dados antes de aplicar o filtro.

Preciso aplicar filtros em 5 planilhas diferentes e colar sequencialmente, algumas das colunas filtradas em uma planilha diferente. São dados variáveis, altera a quantidade de linhas conforme os critérios da pesquisa. Preciso colocar um cabeçalho, pular uma linha, aplicar um filtro, pular uma linha, colocar outro cabeçalho, pular uma linha e assim até a último filtro...

Usei a variável abaixo para aplicar o filtro e não estou conseguindo mudar para que o filtro seja aplicado conforme alteração do conteúdo de uma determinada celula de umas das planilhas do arquivo.

Dim IBGEO As Long IBGEO = InputBox("Digite o código IBGE_O para filtrar:")

Não consigo habilitar as opções de eventos na versão do excel que estou utilizando, aparentemente precisa alterar de Sub para Private Sub e fazer alguns ajustes no código para funcionar

Insira aqui a descrição dessa imagem para ajudar na acessibilidade erro

Insira aqui a descrição dessa imagem para ajudar na acessibilidade o código que estou usando

erro do código

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

quando eu tento editar o código na própria planilha sem criar um módulo, não consigo acessar a opção worksheet. aparece um mensagem de erro. Assim meu código não funciona, não consigo habilitar um filtro a partir da mudança no conteúdo de uma celula específica de uma das planilhas

Oii, Matheus! Tudo bem?

Peço desculpas pela demora em obter um retorno e agradeço por compartilhar mais informações.

É importante estar atento a alguns pontos para adicionar em seu projeto algumas ações:

  • O código deve verificar qual planilha está ativa antes de aplicar o filtro, garantindo que o filtro seja aplicado na planilha certa.

  • O código deve usar um loop For para percorrer as 5 planilhas de origem. Dentro desse loop, o código deve:

    • Aplicar o filtro na planilha de origem atual com base no critério especificado (por exemplo, código IBGE).
    • Encontrar a última linha preenchida na planilha de origem.
    • Copiar as colunas filtradas da planilha de origem para a planilha de destino, começando na última linha preenchida.
    • Atualizar o contador de linhas da planilha de destino para a próxima linha disponível. Essas etapas devem ser repetidas para cada uma das planilhas de origem
  • Quando a versão do Excel não permitir a habilitação de eventos, é possível usar um método alternativo para detectar mudanças nas células: por exemplo, o timer, para verificar periodicamente o valor da célula e aplicar o filtro conforme as mudanças.

  • Para editar o código diretamente na planilha sem criar um módulo separado, use o objeto ThisWorkbook para acessar as planilhas da pasta de trabalho atual.

Deixo abaixo alguns links que pode te auxiliar durante os estudos:

As páginas podem abrir em Inglês, se não possui familiaridade com o idioma, basta clicar com o botão direito do mouse em qualquer canto da página e escolher a opção Traduzir para o portugês.

Essas são algumas sugestões que você pode seguir, lembre-se de adaptar conforme as necessidades do seu projeto.

Espero ter ajudado. Bons estudos, Matheus!