Ir ao conteúdo
  • Cadastre-se
Loliveira103

Excel RESOLVIDO Macro para criar nova planilha com a mesma formatação

Recommended Posts

Olá pessoal,

 

Eu estou trabalhando numa planilha que trabalha com os doze meses do ano, nela preciso de uma macro que sempre que a pessoa necessite fechar o ano, ela salve o novo e ano e zere essa planilha (Tanto os dados quanto os meses (abas)).

Eu cheguei a estrutura uma macro, porém sempre que eu executo ela, os meses (abas) são apagadas no ano anterior também. Queria que os meses, por exemplo, do ano 2018 ficassem intactos e quanto ao ano de 2019 fosse zerada até janeiro. Ressalto que a pessoa que irá utilizar essa planilha, ficará por longos anos com ela, não se limitando aos anos de 2018 e 2019.


Segue o que já foi tentado 

 

Sub SalvarNovoAno()

    Application.Dialogs(xlDialogSaveAs).Show nomeArq & ".xls"
    Range("G10:W40").Select   -  Área dos dados na qual a pessoa irá digitar
    Selection.ClearContents
    Range("Tabela3[VALORES]").Select   -  Área dos dados na qual a pessoa irá digitar
    Selection.ClearContents
    Call ZerarPlanilhaNovoAno
        
        
End Sub

 

Sub ZerarPlanilhaNovoAno()
    
Dim j As Long
Dim k As Long
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    j = Worksheets.Count
    For k = j To 2 Step -1
        Sheets(k).Delete
    Next k
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    Sheets(1).Select
    Sheets(1).Name = "Janeiro"
    Range("A1").Select
End Sub


Abraços
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimente:

 

Sub SalvarNovoAnoV2()
  Dim ws As Worksheet
   For Each ws In ThisWorkbook.Worksheets
    ws.Range("G10:W40").Value = ""
    ws.Range("Tabela3[VALORES]").Value = ""
   Next ws
  Application.Dialogs(xlDialogSaveAs).Show nomeArq & ".xls"
End Sub

 

obs.

1.o código acima dispensa o uso do seu segundo código

2. no seu código a variável nomeArq é inútil, pois além de não estar declarada não há valor atribuído a ela

Compartilhar este post


Link para o post
Compartilhar em outros sites

Osvaldo, 

 

Aproveitando sua ajuda:

Tenho essa macro para gerar novos meses, porém sempre que clico no botão cancelar do box me gera um erro. Como poderia solucionar isso?

 

Sub DuplicaERenomeia()
'primeiro, faz a cópia da planilha
    Sheets(1).Copy After:=Sheets(ThisWorkbook.Worksheets.Count)
    'como foi movida para o final, pega a última
    Dim newSheet As Worksheet
    Set newSheet = ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
    newSheet.Name = InputBox("O nome da nova planilha é:", "Renomeando...", newSheet.Name)
    MsgBox "Feito!"

End Sub
 

 

Quanto a macro anterior, obrigado pela sugestão! Não me atendeu como esperava, mas solucionei de outra forma.

Compartilhar este post


Link para o post
Compartilhar em outros sites
15 horas atrás, Loliveira103 disse:

Tenho essa macro para gerar novos meses, porém sempre que clico no botão cancelar do box me gera um erro. Como poderia solucionar isso?

Macro que gera meses? Os meses já existentes (jan a dez) não são suficientes, precisa gerar novos meses? :o

Disponibilize uma amostra do seu arquivo com o código instalado.

 

Quanto a macro anterior, obrigado pela sugestão! Não me atendeu como esperava, mas solucionei de outra forma.

O código foi escrito com base nos seus comentários e nos códigos que você postou.

Ao invés de escrever somente "não me atendeu" seria oportuno você informar exatamente em que não atendeu e o que exatamente você fez para atender. Assim poderemos aprender com a sua solução e isso também poderá ser útil para outras pessoas que venham acessar este tópico como resultado de busca pela Internet.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, não havia pensado por esse lado! :)

Eu preciso do seguinte:

 

Tenho uma planilha do ano de 2018 com os anos e seus respectivos dados e ao chegar no mês de Dezembro a pessoa que irá utilizar precisará "fechar" o ano e abrir um novo.
image.png.981243f2dca3345b84e7c977bcd65522.png

 

O que preciso é de uma macro que zere a planilha e abra um novo ano sem afetar os dados salvos do ano anterior
image.png.063927c2d294f29005dc400a8d940773.png

 

Acontece que ao executar alguns comandos testados, o Excel exclui os dados da planilha anterior e salva ambas as pastas da mesma forma (sem dados). Estou tentando automatizar esse processo, pois a pessoa que me pediu não tem conhecimentos com informática e isso iria, ao meu ver, tornar o processo de contabilidade mais fácil.

Segue o arquivo base em .rar (o fórum não permite subir o arquivo xlsm). Versão Plus 2013 do Excel!

Obrigado pela ajuda

base.rar

Compartilhar este post


Link para o post
Compartilhar em outros sites
38 minutos atrás, Loliveira103 disse:

Tenho uma planilha do ano de 2018 com os anos e seus respectivos dados
image.png.981243f2dca3345b84e7c977bcd65522.png

Não seria com os meses e seus respectivos dados ?

 

Acontece que ao executar alguns comandos testados, o Excel exclui os dados da planilha anterior e salva ambas as pastas da mesma forma (sem dados).

Executar alguns comandos de qual código ? Não procede o que você escreveu pois nenhum dos códigos do seu arquivo e tampouco o que passei salva o arquivo :confused:

 

Estou tentando automatizar esse processo, ...

Com base na imagem que você colocou acima, me aprece que você quer uma planilha vazia para cada mês. Se for isso, sugiro que você prepare uma planilha, nome matriz ou modelo, que servirá de base para todos os meses e eu te faço um código que produzirá 12 cópias dessa planilha e nomeará as cópias conforme os nomes dos meses. Aí você salva esse arquivo e em dezembro de cada ano basta abrir o arquivo, rodar o código e salvar como. Me parece mais simples do que esse processo confuso que você pretende.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
27 minutos atrás, osvaldomp disse:

Não seria com os meses e seus respectivos dados ?

Isso! Desculpe o erro cometido.

 

27 minutos atrás, osvaldomp disse:

Executar alguns comandos de qual código ? Não procede o que você escreveu pois nenhum dos códigos do seu arquivo e tampouco o que passei salva o arquivo :confused:

Comandos que tentei montar para executar o procedimento citado. Essa linha (Application.Dialogs(xlDialogSaveAs).Show nomeArq & ".xls") salva uma nova pasta e também a pasta já aberta (porém com as modificações feitas).

 

29 minutos atrás, osvaldomp disse:

Com base na imagem que você colocou acima, me aprece que você quer uma planilha vazia para cada mês. 

No caso seria para cada ano, a partir de 2018. 

Compartilhar este post


Link para o post
Compartilhar em outros sites
16 minutos atrás, Loliveira103 disse:

Essa linha (Application.Dialogs(xlDialogSaveAs).Show nomeArq & ".xls") salva uma nova pasta e também a pasta já aberta (porém com as modificações feitas).

Não, amigo. Esse comando não salva, ele apenas abre a caixa de diálogo Salvar Como, e a partir daí o usuário é quem decide se salva ou não. Eu mantive esse comando pois ele já estava no seu código original e comentei sobre a variável nomeArq.

 

No caso seria para cada ano, a partir de 2018. 

Conforme a nomenclatura da Microsoft  um Arquivo Excel ou Pasta de Trabalho Excel é formada por uma ou mais planilhas. Me parece que você trata Arquivo Excel como planilha. Salvo engano, você quer um Arquivo Excel ou uma Pasta de Trabalho Excel com 12 planilhas, uma planilha para cada mês. Seria isso?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
22 horas atrás, osvaldomp disse:

Não, amigo. Esse comando não salva, ele apenas abre a caixa de diálogo Salvar Como, e a partir daí o usuário é quem decide se salva ou não

Sim, eu tenho conhecimento disso. Porém ao executar o comando completo (mesmo que o outro arquivo não esteja mais aberto) ele modifica os dados do arquivo anterior e não o do arquivo criado pela linha de "Salvar como".

Exemplo: Executei a macro no arquivo 2018. O "Salvar como" abre, salvo como 2019. O Excel fecha o arquivo 2018 e mantém aberto o 2019. Porém as linhas que limpariam os dados são executadas no arquivo 2018 também!

 

22 horas atrás, osvaldomp disse:

Salvo engano, você quer um Arquivo Excel ou uma Pasta de Trabalho Excel com 12 planilhas, uma planilha para cada mês. Seria isso?

Isso! E no caso cada arquivo Excel seria um ano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desisto de tentar entender que rolo que você está fazendo aí.

Uma última observação, vi no arquivo que você disponibilizou acima que a linha de comando que carrega a caixa de diálogo Salvar Como , você a colocou logo no início do código, sendo que no código que passe ela está no final. Essa alteração que você fez "sugere" que você salve o arquivo antes de limpar os intervalos, sendo que depois de limpar você precisa salvar novamente, trabalho duplicado. Isso pode ser um "convite" pra você se enrolar aí.

 

Pra finalizar, a única pendência agora é a sua resposta para a minha sugestão do post #6.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 12/09/2018 às 22:42, osvaldomp disse:

Desisto de tentar entender que rolo que você está fazendo aí.

Uma última observação, vi no arquivo que você disponibilizou acima que a linha de comando que carrega a caixa de diálogo Salvar Como , você a colocou logo no início do código, sendo que no código que passe ela está no final. Essa alteração que você fez "sugere" que você salve o arquivo antes de limpar os intervalos, sendo que depois de limpar você precisa salvar novamente, trabalho duplicado. Isso pode ser um "convite" pra você se enrolar aí.

 

Pra finalizar, a única pendência agora é a sua resposta para a minha sugestão do post #6.

Osvaldo, me desculpe, realmente acabei me enrolado. :)
Fica a dica para usuários que possam utilizar o código citado: Salvem a pasta de trabalho antes de utilizar a macro!!!

 

Eu estava utilizado a macro antes de salvar e por isso estava em dúvida sobre ela não salvar os dados da pasta anterior.

 

Por fim gostaria da sua ajuda com o post#3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×