Software  
 
Rede de conhecimento computador >> Software >> Microsoft Excel >> Content
Como você pode criar uma macro no Excel que salva a pasta de trabalho de renda e depois cria novas a cada semana?
`` `VBA
Sub Weeklyincomemanagement ()

'Declare variáveis
Dim WB como pasta de trabalho
Dim WS como planilha
Dim filepath como string
Dim FileName como string
Dim NewFileName como string
Dim WeekStartDate como data
Dim Weekend Date como data

'Defina a data de início da semana (você pode ajustar isso com base no seu dia de início da semana, por exemplo, domingo ou segunda -feira)
WeekStartDate =Data - Dia da semana (data, VBMONDAY) + 1 'Isso define o dia de início para segunda -feira

'Defina a data de término da semana
Fim de semana Data =WeekStartDate + 6

'Defina o caminho para a pasta onde deseja salvar os arquivos. modifique isso na pasta desejada
Filepath ="c:\ path \ to \ your \ rendolder \" '<--- IMPORTANTE: Mudar isso!

'Verifique se a pasta existe e, se não, crie -a
Se dir (filepath, vbdirectory) ="" então
Mkdir filepath
Final se

'Defina o nome do arquivo base (por exemplo, "renda")
FileName ="Renda"

'Defina o novo nome do arquivo (por exemplo, "renda_2023-10-23_to_2023-10-29.xlsx")
NewFileName =FileName &"_" &Format (WeekStartDate, "AAYYY-MM-DD") &"_TO_" &FORMAT (fim de semana, "AAAA-MM-DD") &".xlsx"

'Crie um caminho de arquivo completo
Filepath =filepath &newFileName

' ***
'Salve a pasta de trabalho atual com o nome semanal
' ***

'Obtenha uma referência à pasta de trabalho atual
Set wb =thisworkbook

'Desative a atualização da tela para acelerar o processo
Application.ScreenUpDating =False

'Salve a pasta de trabalho
wb.saveas filepath, fileFormat:=xlopenxmlworkbook 'use xlopenxmlworkbook para formato .xlsx


' ***
'Crie uma nova pasta de trabalho (com base em atual ou modelo)
' ***


'Opção 1:Crie uma nova pasta de trabalho em branco
'Pastas de trabalho.add

'Opção 2:Crie uma nova pasta de trabalho baseada na estrutura de trabalho existente (copie -a)
Set wb =workbooks.add (thisworkbook.fullname) 'thisworkbook.fullName usa a pasta de trabalho atual como o modelo


'Opção 3:Crie a partir de um arquivo de modelo específico (se você tiver uma configuração de modelo)
'Dim templateFilePath como string
'Templatefilepath ="c:\ path \ to \ your \ model \ incometemplate.xltx"' modifique isso no seu caminho de modelo
'Definir WB =Work.ArtDd (Modelo:=templateFilePath)


'Opcional:renomeie a primeira folha na nova pasta de trabalho para algo significativo
SET WS =WB.Sheets (1)
ws.name ="Dados de renda semanal"


'Ativar atualização da tela
Application.ScreenUpDating =true

'Exiba uma caixa de mensagem confirmando a ação
MsgBox "Current Renda de trabalho salvo como:" &newFileName &vbcrlf &_
"Uma nova pasta de trabalho foi criada para a próxima semana.", Vbinformation, "Atualização semanal de renda"


'Limpe as variáveis ​​de objetos (melhores práticas)
Definir wb =nada
Definir ws =nada

Final sub
`` `

Explicação e como usar:

1. Abra o editor VBA:
- No Excel, pressione `alt + f11` para abrir o Visual Basic Editor (VBE).

2. Insira um módulo:
- No VBE, vá para `insert> module`. Isso cria um novo módulo onde você colará o código.

3. Cole o código:
- Cole o código fornecido acima no módulo.

4. Personalize o código (importante!):

* `filepath =" c:\ path \ to \ your \ rendolder \ "` : Crítico:Altere isso para o caminho da pasta real, onde deseja salvar suas pastas de trabalho de renda. Verifique se a pasta existe ou o código tentará criá -lo. A barra de barriga (`` `) é importante. Exemplo:`" D:\ myincomes \ "`

* `weekstartdate =date - dia da semana (data, VbMONAY) + 1`: Esta linha calcula o início da semana, assumindo que sua semana começa na segunda -feira. Se a sua semana começar no domingo, mude para:`WeekStartDate =Data - Dia da semana (data, VbsUday) + 1` se sua semana começar em um dia diferente, ajuste -se de acordo (por exemplo,` VBTuesday` para terça -feira). Funciona encontrando o dia da semana de * hoje * e subtraindo esses dias, portanto, o início da semana é sempre consistente.

* `filename =" renda "` :Isso define o nome base do seu arquivo. Você pode alterar isso se quiser usar um nome de base diferente, como `" mybusinessincome "` ou `" xyzincomes "`.

* Escolha * um * das opções de criação da pasta de trabalho: O código fornece três opções para criar a nova pasta de trabalho. Descubra o que você deseja usar removendo o `'` no início da linha:
* '' Workbooks.add` :Cria uma pasta de trabalho completamente em branco.
* `set wb =workbooks.add (thisworkbook.fullname)` :Cria uma nova pasta de trabalho que é uma cópia * da pasta de trabalho atual. Esta é provavelmente a melhor opção se você deseja preservar cabeçalhos, fórmulas ou formatação de semana para semana.
* `'templatefilepath =" c:\ path \ to \ your \ model \ incometemplate.xltx "` e `'set wb =workbooks.add (modelo:=templatefilepath)` :Cria uma nova pasta de trabalho baseada em um arquivo de modelo. Você precisará criar um arquivo de modelo (`.xltx`) com a formatação e layout desejada e definir a variável` modelofilepath` no caminho correto. IMPORTANTE: Uncomment * Ambas as * dessas linhas, se você quiser usar a opção de modelo. Não se esqueça de alterar `" c:\ path \ para \ your \ model \ incometemplate.xltx "`!

5. Execute a macro:
- Volte para a planilha do Excel.
- Pressione `alt + f8` para abrir a caixa de diálogo" Macro ".
- Selecione `WeeklyIncomemanagement 'na lista de macros.
- Clique em "Executar".

como funciona:

* salva a pasta de trabalho atual:
* `Filepath =filepath &newFileName` constrói o caminho completo e o nome do arquivo para a pasta de trabalho salva.
* WB.SAVEAS FILEPATH, FILEFORMAT:=XLopenxmlworkbook` Salva a pasta de trabalho atual na pasta especificada com o nome gerado, usando o formato `.xlsx`. Isso é crucial para a compatibilidade e garantir que você esteja usando o formato de arquivo do Excel moderno.

* Cria uma nova pasta de trabalho:
* A instrução `Work.Artaw.add` (ou baseada em modelos) cria uma pasta de trabalho vazia e totalmente nova. Ou, como mencionado anteriormente, usa o atual como modelo.

* Convenção de nomeação de arquivos:
* `NewFileName =FileName &" _ "&Format (WeekStartDate," AAAA-MM-DD ") &" _TO_ "&Format (fim de semana," AAAA-MM-DD ") &" .xlsx "` Gerates um nome que inclua as datas iniciais e finais da semana. Isso facilita a identificação dos dados para cada semana. A função `formato` garante que as datas estejam em um formato consistente e classificável (AAAA-MM-DD).

* Manuseio de erros e criação de pastas (melhorada):
* `Se dir (filepath, vbdirectory) =" "Então mkdir filepath` verifica se a pasta de destino existe. Caso contrário, cria a pasta. Isso evita erros se a pasta ainda não existir.

* Atualização da tela:
* `Application.ScreenUpdating =false` e` Application.ScreenUpDating =true` desativar e reativar a atualização da tela. Isso faz com que a macro funcione mais rápido e impede a ondulação.

* limpeza da variável de objeto:
* `Set wb =nada` e` set ws =nada` são boas práticas. Eles liberam a memória usada pelas variáveis ​​do objeto `wb` e` ws` depois que não forem mais necessárias. Isso ajuda a impedir vazamentos de memória, especialmente em macros de longo prazo.

Considerações importantes:

* Backup: Sempre faça backup de suas pastas de trabalho antes de executar qualquer macros que as modifiquem ou salvam.
* Macro Segurança: O Excel possui configurações de segurança macro. Pode ser necessário ajustá -los para permitir que as macros executem. Vá para `Arquivo> Opções> Centro de Trust> Configurações do Centro de Confiança> Configurações de Macro` e selecione" Ativar todas as macros "(não recomendado para uso geral; use com cautela) ou" Desative todas as macros com notificação "(recomendado, mas você precisará ativar as macros cada vez que abrir a pasta de trabalho). Uma abordagem melhor é usar uma macro assinado digitalmente.
* Teste: Teste a macro cuidadosamente com uma pasta de trabalho de amostra antes de usá -la com seus dados reais.
* colocação da macro: A macro deve ser salva em uma pasta de trabalho que possui macros ativadas (`.xlsm` ou o formato mais antigo` .xls` se você tiver versões mais antigas do Excel). Idealmente, você salvaria a macro em sua pasta de trabalho de macro pessoal para que esteja disponível para todas as pastas de trabalho do Excel. Para fazer isso:
1. No VBE, vá para visualizar> Project Explorer.
2. Se você vir "PESSOAL.XLSB" (ou similar) no Project Explorer, a pasta de trabalho de macro pessoal já foi criada. Caso contrário, grave uma macro dummy (guia do desenvolvedor> gravar macro, salve -a na pasta de trabalho de macro pessoal) para criá -la.
3. Arraste o módulo que contém o código da pasta de trabalho atual para "PESSOOL.XLSB" no Project Explorer.
4. Salve a pasta de trabalho macro pessoal.

acionando a macro (automação):

Você pode automatizar a execução da macro de várias maneiras:

* Botão na planilha: Insira um botão (guia do desenvolvedor> inserir> botão). Atribua a macro ao botão.
* fita: Adicione uma guia ou botão personalizado à fita do Excel e atribua a macro a ela.
* Workbook_beforeClose Evento: Coloque o código dentro do evento `Workbook_BeForEclose` no módulo` ThisWorkbook`. Isso executará a macro * antes que * a pasta de trabalho feche. CUIDADO: Isso pode ser um comportamento inesperado se o usuário não estiver ciente de que a macro está em execução.
* Windows Task Scheduler (Avançado): Use o agendador de tarefas do Windows para agendar a pasta de trabalho do Excel para abrir e executar a macro em um horário específico a cada semana. Esta é a abordagem mais automatizada. Você precisará usar as opções da linha de comando para o Excel abrir a pasta de trabalho e executar a macro (por exemplo, `Excel.exe" C:\ Path \ para \ Your \ Workbook.xlsm " /m" semanalmente gerenciamento "`). Isso requer mais configuração.

Seguindo estas etapas e personalizando o código, você pode gerenciar com eficiência seus dados de renda semanal com esta macro do Excel. Lembre -se de testá -lo completamente antes de confiar nele para dados importantes.

Anterior :

Próximo :
  Os artigos relacionados
·Por que você usa a função de dados de classificaçã…
·O que é planilha de gráfico Excel? 
·Que ferramenta você usa para adicionar uma dica útil …
·Um dos benefícios Excel Live Preview? 
·O que a função Min Excel faz? 
·O Excel converte todas as fórmulas? 
·Como você muda o estilo de gráfico para 42 no Excel? 
·O que é uma maneira de mostrar seus dados no Excel em …
·Quais são os dados em uma célula chamada Excel? 
·Como você exibe dados do Excel em uma TV LCD e tem o r…
  Artigos em destaque
·Como excluir macros no Excel 2000 
·Problemas de fechamento QuickBooks 
·Como usar o Botify no Discord 
·Como projetar seu próprio cartão para Imprimir 
·SQL Server Express Tutoriais 
·Como formato de planilha Excel para maiores Células Te…
·Como usar o DVD Maker Acer NTI 7 
·Como fazer o texto aparecer ou desaparecer nas históri…
·Eu não posso enviar um arquivo processador do Microsof…
·Qual é a abordagem alternativa para o arquivo? 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados