Explicação e código muito úteis... Obrigado! Um detalhe: Depois da virada do ano o código passou a apagar o arquivo mais recente (devido ao formato da data, que iniciava pelo dia). Fiz um ajuste, substituindo a linha Data = VBA.Replace(VBA.Date, "/", "_") 'Resulta em 31_12_2023 por Data = Format(VBA.Date, "yyyy_mm_dd") 'Resulta em 2023_12_31 Com isso a data fica organizada por ano.
Amigo, sua ideia foi fantástica. Até falei com o criador do canal na epoca mas nao conseguiu me ajudar. Parabens. Eu ainda alterei também a hora, colocando Format(VBA.Time, "hh_mm"). Vc é monstro! Salvou minhas planilhas
Parabéns pelo ensino e explicação, seguindo os passos que você dá, não tem como errar, fiz este procedimento para outras planilhas que tenho, funcionou perfeitamente.
seu video é fantastico, ganhou um seguidor a tempos, sempre te acompanho. porem a dica para todos substituir: Data = VBA.Replace(VBA.Date, "/", "_") por Data = Format(VBA.Date, "yyyy_mm_dd") e também a hora de Hora = VBA.Replace(VBA.Time, ":", "_") para Format(VBA.Time, "hh_mm"). Pois dessa forma vai excluir corretamente as mais antigas. creditos para @ulissesafonseca que foi o criador da ideia.
Código sensacional... Parabéns... No meu caso inseri uma macro que cria a pasta com o endereço onde vamos realizar o backup, e rodei ela no início da "Salvar_copia", dessa forma, criando a pasta na primeira execução, e ignorando a criação, caso a pasta já exista... Sub criarpasta() Dim caminho As String caminho = "c:\Backup Planilha\" If Dir(caminho, vbDirectory) = "" Then MkDir (caminho) Else End If End Sub Tbm pensei em criar uma entrada na própria planilha para que o cliente possa determinar manualmente o local do backup, buscando o valor de uma célula específica na planilha, mas para meu projeto não havia necessidade.
Show de bola muito bom funciona perfeito - com uma unica ressalva. Para mim que implementou funciona perfeitamente, porem meus colegas que utilizam a planilha ao fechar tomam um erro " erro de compilação. É impossível localizar o projeto ou Biblioteca.
Boa tarde, este erro provavelmente esteja relacionado a bibliotecas ausentes do Excel. Verifique nas referências do vba se tem alguma opção marcada como ausente.
Boa tarde, observei nas copias dos Backups gerados que a ultima atualização foi a 2 meses atrás e todos os dias abro e fecho para atualização de dados na planilha, quando muda o mês para de fazer o backup tendo que deletar todos os arquivos gerado do mês anterior para voltar a fazer a copia, porque isto esta acontecendo, ou seja todas as vezes que muda de mês tenho que fazer isto para manter os arquivos de backup atualizados.
@@CanalSGP Boa noite, O nome da planilha é sempre o mesmo, só preciso apagar os dois arquivos gerados dentro da pasta onde a copia é feita todas as vezes que vira o mês, esse é o único problema o resto esta funcionando show de bola, deixei configurado para manter sempre duas cópias, ou será que tenho que alterar o nome do arquivo todo o dia 1º de cada mês para fazer novas cópia?
Bom dia, o nome antes da data e hora precisa ser o mesmo. Tentei reproduzir o erro, mas sem sucesso, teste ir executando com a tecla F8, para ver se de fato está gerando as cópias e deletando a cópia errada, pode ser que não está salvando.
Professor. Ao invés de apagar as antigas, não tem comando que ao salvar, ele já sobrescreve a última que foi salva. Ou seja, abri o programa, fechei, ele salva uma cópia, aí abro e fecho novamente, aí ao invés dele deixar as duas, ele salva sobrescrevendo o arquivo existente.
Boa tarde, neste caso basta deixar sempre o mesmo nome, mas perde a lógica, porque se der erro na sua planilha, quando fechar vai trocar o arquivo e vai ficar com a planilha com problema da mesma forma.
Não entendi exatamente sua dúvida. Mas se for olhar para falhas, todos os sistemas podem enfrentar bugs, mas sempre é bom ter precaução, quem é precavido e busca conhecimento consegue lidar com os problemas.
@@CanalSGP perdão, a resposta era para o Sr. Raphael. Eu sou a favor de manter uma quantidade de backup considerável, pois o VBA tem falhas vindo a corromper arquivos. Eu, como dito no outro comentário, procurava um sistema de backup eficiente que poderia manter ao menos uns 10 arquivos. Obrigado por compartilhar esse conhecimento!
sou inscrito e admiro seu trabalho. Montei essa planilha que funcionou por muito tempo. Mas agora ela está apagando o ultimo item salvo ao invés do mais antigo. trabalhei com back up de 60 copias. Em vez de apagar a mais antiga, ela apaga a mais recente. Me ajude por favor.
acho q entendi mas nao consegui solucionar. Ele está apagando por ordem alfabetica, o primeiro nome. Se eu apagar manualmente funciona, salva corretamente.
Boa tarde, acredito que vai precisa montar o nome dos arquivos de forma que fique classificado corretamente. Mas a linha de código que classifica no código é Arr.Sort
Boa noite, não tentei classificar um array vba de forma descendente ainda, talvez seja mais fácil salvar o array na planilha, ordenar e capturar novamente.
pode me ajudar? eu uso a mesma planilha em alguns computadores com acesso a mesma rede, (2 windows 10, 2 windows 8). nos computadores win10 está funcionando, porém nos win8 não está funcionando da erro! excluir. passando pelo código enquanto executo com f8, ele para no createobject e ja pula pra msg de erro. vc sabe se pode ser por conta da versão do windows ou alguma configuração
@@CanalSGP todas são 64, eu consegui resolver obrigada 👍 nas máquinas que não funcionavam o .net framework 3.5 esta desativado nos recursos do windows, foi só ativar que voltou a funcionar
Boa tarde tudo bem , esta dando uma mensagem de erro , Set Arr = CreateObject("System.Collections.ArrayList") erro em tempo de execução . o Sr pode me ajudar
Boa noite, a princípio a linha de código está correta, verifique se declarou a variável corretamente. Dim Arr As Object Set Arr = CreateObject("System.Collections.ArrayList")
@@CanalSGP o meu ta dando o erro do GoTo Erro da Sub Excluir exatamente quando chega nesta etapa do código Set Arr = CreateObject("System.Collections.ArrayList"). Sabe o que pode ser? Meu excel é o 2007, interfere em algo neste código?
Olá, boa tarde. Tudo bem professor? Gostaria de te pedir uma ajuda. Eu criei duas macros que transformam duas abas diferentes em PDFs. Uma aba está com o conteúdo na horizontal e a outra com o conteúdo na vertical. Meu problema é o seguinte, quando eu aperto nos botões para gerar os pdfs, todas as duas abas são geradas numa num único padrão de layout… gostaria que cada uma delas fossem geradas segundo a configuração de layout delas… já fiz de tudo, até procurei códigos pra resolver isso, e não acho nada a respeito. Pode me ajudar?
Bom dia, depende do código que está usando, no vídeo no link a seguir foi feito código que é possível definir. A propriedade xllandascape é para paisagem, xlportrait para retrato.
@@CanalSGP Professor, muitíssimo obrigado!!! Vou assistir ele com muita calma amanhã, pra tentar resolver meu problema. Em breve volto aqui para informar o senhor!!! Mais uma vez obrigado. Deus abençoe!
Explicação e código muito úteis... Obrigado! Um detalhe: Depois da virada do ano o código passou a apagar o arquivo mais recente (devido ao formato da data, que iniciava pelo dia). Fiz um ajuste, substituindo a linha
Data = VBA.Replace(VBA.Date, "/", "_") 'Resulta em 31_12_2023
por
Data = Format(VBA.Date, "yyyy_mm_dd") 'Resulta em 2023_12_31
Com isso a data fica organizada por ano.
Bom dia, que bom que resolveu.
Bom dia, que bom que resolveu.
Amigo, sua ideia foi fantástica. Até falei com o criador do canal na epoca mas nao conseguiu me ajudar. Parabens. Eu ainda alterei também a hora, colocando Format(VBA.Time, "hh_mm"). Vc é monstro! Salvou minhas planilhas
"EITAAAA LASQUEEEEERAAAA"... 😄
Muito boa suas explicações!!!
Parabéns pelo canal!!!! 🏆
Muito obrigado.
Parabéns pelo ensino e explicação, seguindo os passos que você dá, não tem como errar, fiz este procedimento para outras planilhas que tenho, funcionou perfeitamente.
Obrigado, que bom que deu certo.
seu video é fantastico, ganhou um seguidor a tempos, sempre te acompanho. porem a dica para todos substituir: Data = VBA.Replace(VBA.Date, "/", "_") por Data = Format(VBA.Date, "yyyy_mm_dd") e também a hora de Hora = VBA.Replace(VBA.Time, ":", "_") para Format(VBA.Time, "hh_mm"). Pois dessa forma vai excluir corretamente as mais antigas.
creditos para @ulissesafonseca que foi o criador da ideia.
Boa noite, obrigado.
A tempos procurava uma automação completa e eficaz pra backups! Obrigado pela Aula perfeita!
Obrigado
Código sensacional... Parabéns... No meu caso inseri uma macro que cria a pasta com o endereço onde vamos realizar o backup, e rodei ela no início da "Salvar_copia", dessa forma, criando a pasta na primeira execução, e ignorando a criação, caso a pasta já exista...
Sub criarpasta()
Dim caminho As String
caminho = "c:\Backup Planilha\"
If Dir(caminho, vbDirectory) = "" Then
MkDir (caminho)
Else
End If
End Sub
Tbm pensei em criar uma entrada na própria planilha para que o cliente possa determinar manualmente o local do backup, buscando o valor de uma célula específica na planilha, mas para meu projeto não havia necessidade.
Boa noite, obrigado, que bom que conseguiu adaptar.
Show de bola muito bom funciona perfeito - com uma unica ressalva. Para mim que implementou funciona perfeitamente, porem meus colegas que utilizam a planilha ao fechar tomam um erro " erro de compilação. É impossível localizar o projeto ou Biblioteca.
Boa tarde, este erro provavelmente esteja relacionado a bibliotecas ausentes do Excel. Verifique nas referências do vba se tem alguma opção marcada como ausente.
Top demais, e esse pacote de planilhas na descrição, já quero, deve ser tudo de bom a um ótimo custo benefício.
Obrigado
Vou aplicar em minhas planilhas, estou grato.
Que bom
Sucesso professor, canal do senhor é o melhor 👏🏼👏🏼👏🏼
Obrigado pelo elogio
Caro Luan, a aula é show! me envia a planilha desse artigo, por gentileza.
Boa tarde, solicite no e-mail do site do canal, link na descrição do vídeo.
Boa tarde, observei nas copias dos Backups gerados que a ultima atualização foi a 2 meses atrás e todos os dias abro e fecho para atualização de dados na planilha, quando muda o mês para de fazer o backup tendo que deletar todos os arquivos gerado do mês anterior para voltar a fazer a copia, porque isto esta acontecendo, ou seja todas as vezes que muda de mês tenho que fazer isto para manter os arquivos de backup atualizados.
Boa tarde, o nome da planilha foi alterado ao trocar de mês? Porque é classificado de A a Z para colocar os arquivos em ordem.
@@CanalSGP Boa noite, O nome da planilha é sempre o mesmo, só preciso apagar os dois arquivos gerados dentro da pasta onde a copia é feita todas as vezes que vira o mês, esse é o único problema o resto esta funcionando show de bola, deixei configurado para manter sempre duas cópias, ou será que tenho que alterar o nome do arquivo todo o dia 1º de cada mês para fazer novas cópia?
Bom dia, o nome antes da data e hora precisa ser o mesmo. Tentei reproduzir o erro, mas sem sucesso, teste ir executando com a tecla F8, para ver se de fato está gerando as cópias e deletando a cópia errada, pode ser que não está salvando.
Gostaria de colocar uma pesquisa com combo oxi em uma listbox tem algum vídeo explicando?
Bom dia, com combobox não tenho.
Até o fim otimo
Obrigado
Professor. Ao invés de apagar as antigas, não tem comando que ao salvar, ele já sobrescreve a última que foi salva. Ou seja, abri o programa, fechei, ele salva uma cópia, aí abro e fecho novamente, aí ao invés dele deixar as duas, ele salva sobrescrevendo o arquivo existente.
Boa tarde, neste caso basta deixar sempre o mesmo nome, mas perde a lógica, porque se der erro na sua planilha, quando fechar vai trocar o arquivo e vai ficar com a planilha com problema da mesma forma.
@@CanalSGP vai deixar os ovos numa mesma cesta! Em se tratando de VBA pode confiar, uma hora vai dar um B.O. que vc não poderá abrir nada!
Não entendi exatamente sua dúvida. Mas se for olhar para falhas, todos os sistemas podem enfrentar bugs, mas sempre é bom ter precaução, quem é precavido e busca conhecimento consegue lidar com os problemas.
@@CanalSGP perdão, a resposta era para o Sr. Raphael. Eu sou a favor de manter uma quantidade de backup considerável, pois o VBA tem falhas vindo a corromper arquivos. Eu, como dito no outro comentário, procurava um sistema de backup eficiente que poderia manter ao menos uns 10 arquivos. Obrigado por compartilhar esse conhecimento!
Entendido, sem problemas.
Valeu!
Obrigado
sou inscrito e admiro seu trabalho. Montei essa planilha que funcionou por muito tempo. Mas agora ela está apagando o ultimo item salvo ao invés do mais antigo. trabalhei com back up de 60 copias. Em vez de apagar a mais antiga, ela apaga a mais recente. Me ajude por favor.
acho q entendi mas nao consegui solucionar. Ele está apagando por ordem alfabetica, o primeiro nome. Se eu apagar manualmente funciona, salva corretamente.
Boa tarde, acredito que vai precisa montar o nome dos arquivos de forma que fique classificado corretamente. Mas a linha de código que classifica no código é Arr.Sort
@@CanalSGP a pergunta é como classificar de forma decrescente então? Ou como colocar a data ano mes dia. Creio q tb solucionaria o problema
Boa noite, não tentei classificar um array vba de forma descendente ainda, talvez seja mais fácil salvar o array na planilha, ordenar e capturar novamente.
pode me ajudar? eu uso a mesma planilha em alguns computadores com acesso a mesma rede, (2 windows 10, 2 windows 8). nos computadores win10 está funcionando, porém nos win8 não está funcionando da erro! excluir.
passando pelo código enquanto executo com f8, ele para no createobject e ja pula pra msg de erro. vc sabe se pode ser por conta da versão do windows ou alguma configuração
Bom dia, talvez seja pela versão Excel, se for diferente, verifique também nas referências do vba, se tem alguma ausente.
@@CanalSGP Bom dia. Obrigado pela resposta, em todas as maquinas tem o office 2013, mas eu vou dar uma olhada nas referencias
Bom dia, confirme também as versões dos computadores, se são 32 ou 64 bits.
@@CanalSGP todas são 64, eu consegui resolver obrigada 👍 nas máquinas que não funcionavam o .net framework 3.5 esta desativado nos recursos do windows, foi só ativar que voltou a funcionar
Boa tarde tudo bem , esta dando uma mensagem de erro ,
Set Arr = CreateObject("System.Collections.ArrayList") erro em tempo de execução . o Sr pode me ajudar
Boa noite, a princípio a linha de código está correta, verifique se declarou a variável corretamente.
Dim Arr As Object
Set Arr = CreateObject("System.Collections.ArrayList")
@@CanalSGP o meu ta dando o erro do GoTo Erro da Sub Excluir exatamente quando chega nesta etapa do código Set Arr = CreateObject("System.Collections.ArrayList"). Sabe o que pode ser? Meu excel é o 2007, interfere em algo neste código?
O meu está dando o mesmo erro nessa parte. Alguém conseguiu resolver?
@@JMB9696 consegui resolver o meu problema com essa ajuda th-cam.com/video/hlaFjoZD8uc/w-d-xo.html
valeu
Obrigado.
Top!!!
Obrigado
Na janela Inspeção de variáveis, Arr indica "fora de contexto", na coluna valor. Não estou conseguindo setar o Array
Boa tarde, solicite a planilha de exemplo no e-mail do site do canal, link na descrição do vídeo.
Olá, boa tarde. Tudo bem professor? Gostaria de te pedir uma ajuda. Eu criei duas macros que transformam duas abas diferentes em PDFs. Uma aba está com o conteúdo na horizontal e a outra com o conteúdo na vertical. Meu problema é o seguinte, quando eu aperto nos botões para gerar os pdfs, todas as duas abas são geradas numa num único padrão de layout… gostaria que cada uma delas fossem geradas segundo a configuração de layout delas… já fiz de tudo, até procurei códigos pra resolver isso, e não acho nada a respeito. Pode me ajudar?
Bom dia, depende do código que está usando, no vídeo no link a seguir foi feito código que é possível definir. A propriedade xllandascape é para paisagem, xlportrait para retrato.
@@CanalSGP Professor, boa tarde. Tudo bem? O link não veio no seu comentário… Poderia postar novamente por favor?
Boa noite, segue link. th-cam.com/video/XoeILfDfiVg/w-d-xo.html
@@CanalSGP Professor, muitíssimo obrigado!!! Vou assistir ele com muita calma amanhã, pra tentar resolver meu problema. Em breve volto aqui para informar o senhor!!! Mais uma vez obrigado. Deus abençoe!
De nada
Professor, no meu caso, está "travando" na linha Set Arr = CreateObjections.ArrayList.
Bom dia, qual a mensagem de erro.
Eu comentei o tratamento de erro, rodei o comando e pede depurar na linha do set arr
Estou ativando os recursos do Windows. Já retorno.
Funvionou. Meu computador é novo. Foi só ativar os recursos do Windows. Reiniciar e pronto. Está funcionando perfeitamente. Obrigado professor.
Que bom.