Fala Galera, Bom dia!
Estou automatizando um trabalho repetitivo que faço na minha empresa e preciso fazer o seguinte:
- rodar uma macro que abra uma outra planilha, copiar os dados de uma sheet específica e trazer para essa planilha que eu rodei a macro.
- Nessa planilha vou trabalhar os dados nela. Porém como vou rodar essa macro todo dia, precisava que renomeasse a sheet para a data que rodei a macro e assim sucessivamente todos os dias.
dificuldades:
- dependendo da Versão e config do Excel, quando abrimos o excel de forma limpa, as vezes abrem 3 sheets e as vezes 1 sheet, preciso fazer como que a macro veja se tem alguma sheet sobrando e se não tiver, criar uma nova sheet com os dados da macro como citei anteriormente. Creio que dê pra fazer com IF, do tipo se no nome da sheet tenha a palavra "plan", já sei que ela não tem nada, pois na macro vai renomear para a data atual. Só não consigo fazer isso no código. Vou colocar abaixo até onde consegui fazer o código..
Sub Macro1() ' ' Macro1 Macro ' Application.ScreenUpdating = False Application.DisplayAlerts = False ' Abrir planilha base e copiar dados Workbooks.Open ("E:PROJETO VBArelatorio-teste.xlsm") Sheets("Relatorio Geral").Visible = True Sheets("Relatorio Geral").Select ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("Agencia").ClearAllFilters [b]'tirar filtro da coluna agencia[/b] Cells.Select Selection.EntireColumn.Hidden = False Selection.EntireRow.Hidden = False UltimaLinhaBase = Sheets("Relatorio Geral").Cells(11, 1).End(xlDown).Row UltimaColunaBase = Sheets("Relatorio Geral").Cells(11, 1).End(xlToRight).Column Sheets("Relatorio Geral").Range(Cells(11, 1), Cells(UltimaLinhaBase, UltimaColunaBase)).Copy ThisWorkbook.Sheets(1).[a1] Workbooks("relatorio-teste").Close False [b] 'Fechar planilha base[/b] NomeSheet = Format(Date, "DD-MM-YYYY") ActiveSheet.Name = NomeSheet Sheets.Add , Sheets(Sheets.Count)
Nesse código que fiz acima, ele faz praticamente tudo que falei lá em cima, só que no final eu estava usando a plan1 ( que foi renomeada para a data atual) e adicionou mais uma sheet, porém duas sheets (plan2 e plan3), ficaram soltas sem dados.
Não sei se expliquei bem mas quem puder me ajudar...vlw!! abçs
Youngflu1,
Boa tarde!
Confesso que não entendi muito bem o que você de fato quer... Pode ser mais simples?
Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)
Atenciosamente
Wagner Morel
Se disponibilizar um arquivo talvez fique claro o que vc quer pq eu tb nao entendi
Marcelo Prudencio
"Começar já é a metade do caminho."
Autor Desconhecido
Simplifica que simples fica.
Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.
Desculpa gente, A coisa é simples mas devo estar complicando, vou tentar detalhar...
Preciso criar uma planilha mensal onde cada sheet deverá ser um dia do mês (dia que rodar a macro).
Essa Macro precisará acessar outra planilha para copiar e colar os dados. Essa planilha base, já estará atualizada toda vez que for buscar os dados.
Ao colar na planilha, a macro deverá renomear a sheet para o dia em que eu rodei a macro.
PS: Estou tentando anexar a planilha mas diz que está muito grande, alguem sabe como reduzo para anexar?
Abçs
Youngflu1,
Bom dia!
Creio que é bem simples de fazer. Todavia, é necessário seu arquivo. Faça um exemplo do seu arquivo, bem simples e pequeno, com no máximo umas 3 linhas, compacte-o com .ZIP e anexe o mesmo aqui no fórum.
Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)
Atenciosamente
Wagner Morel