Vous êtes sur la page 1sur 3

Criar um novo arquivo excel

dinamicamente
Por Reinaldo Coral |
Oi amigos. Hoje vou disponibilizar para vocs um cdigo que eu desenvolvi
visando a criao de um arquivo excel, em tempo de execuo, ou seja, criar
um novo arquivo atravs de uma macro personalizada.
Neste exemplo prtico, teremos 4 planilhas no arquivo original, sendo que trs
delas contero o saldo das vendas de trs setores distintos de uma empresa e
1delas exibir o resumo de todos e o total geral das vendas. At aqui, nada de
mais. Nosso cdigo passa a funcionar a partir da.
Iremos disponibilizar uma funcionalidade nesta planilha de resumos, que far o
seguinte: criar uma cpia de qualquer uma das planilhas dos setores,
individualmente, em um novo arquivo, para ser enviado poremail, por exemplo,
sem necessidade de informar os demais valores dos outros setores da empresa
para
quem
no
seja
conveniente
informar.
Vamos ao trabalho.
Crie seu arquivo com as 4 planilhas:
1. Resumo
2. Setor Alfa
3. Setor Beta
4. Setor Gamma
Na planilha Resumo, insira trs CommandButton e renomeie-os assim:
1. cmd_Salvar1
2. cmd_Salvar2
3. cmd_Salvar3
Abra o editor do VBA (Alt + F11). Selecione a planilha Resumo na janela do
VBAProject e exiba seu cdigo (F7) e digite o seguinte cdigo:
Private Sub cmd_Salvar1_Click()
Call CriaArquivo(Sheets("Setor Alfa"), ThisWorkbook.Path)
End Sub
Private Sub cmd_Salvar2_Click()
Call CriaArquivo(Sheets("Setor Beta"), ThisWorkbook.Path)
End Sub
Private Sub cmd_Salvar3_Click()
Call CriaArquivo(Sheets("Setor Gamma"), ThisWorkbook.Path)
End Sub

Agora crie um mdulo e digite:


Sub CriaArquivo(mPlan As Worksheet, mPathSave As String)
Dim NovoArquivoXLS As Workbook
Dim sht As Worksheet
'Cria um novo arquivo excel
Set NovoArquivoXLS = Application.Workbooks.Add
'Copia a planilha para o novo arquivo criado
mPlan.Copy Before:=NovoArquivoXLS.Sheets(1)
'Salva o arquivo
NovoArquivoXLS.SaveAs mPathSave & "\" & mPlan.Name & ".xls"
MsgBox "Novo arquivo salvo em: " & mPathSave & "\" & mPlan.Name
& ".xls", vbInformation
End Sub
Explicando o que fizemos. Ao clicarmos no boto 1, por exemplo, criaremos um
novo arquivo com os dados da planilha correspondente ao Setor Alfa e salva
com o mesmo nome da planilha em questo e na mesma pasta da planilha
original. Legal n. Agora s usar a criatividade e adaptar as suas
necessidades.

Alguns termos aprendidos neste artigo.


Application.Workbooks.Add Cria uma nova pasta de trabalho. A nova pasta de trabalho se torna a
pasta de trabalho ativa. Retorna um objeto Workbook.

SaveAs

Salvas alteraes na pasta de trabalho um arquivo diferente.


expresso.SaveAs(FileName,
WriteResPassword,
AccessMode,

FileFormat,

ReadOnlyRecommended,

ConflictResolution,

AddToMru,

Password,
CreateBackup,
TextCodepage,

TextVisualLayout, Local)
expresso necessria. Uma expresso que retorna um dos objetos acima.
Filename Variant opcional. Uma seqncia de caracteres que indique o
nome do arquivo a ser salvo. Voc pode incluir um caminho completo; se
no o fizer, o Microsoft Excel salvar o arquivo na pasta atual.
FileFormat Variant opcional. O formato do arquivo que deve ser usado
ao salv-lo. Para obter uma lista de escolhas vlidas, consulte a
propriedade FileFormat. Para um arquivo existente, o formato padro o
ltimo formato de arquivo especificado; para um novo arquivo, o padro
o formato da verso do Excel usada.
Password Variant opcional. Uma seqncia de caracteres distinguindo
maisculas de minsculas (de at 15 caracteres) que indique a senha de
proteo a ser dada ao arquivo.
WriteResPassword Variant opcional. Uma seqncia de caracteres que
indique a senha de reserva de gravao deste arquivo. Se um arquivo for
salvo com a senha e esta no for fornecida quando o arquivo for aberto, o

arquivo ser aberto como somente leitura.


ReadOnlyRecommended Variant

opcional.

True

para

exibir

uma

mensagem quando o arquivo aberto, recomendando que o arquivo seja


aberto como somente leitura.
CreateBackup Variante opcional. True para criar um arquivo de backup.
AccessMode XlSaveAsAccessMode opcional.
XlSaveAsAccessMode

pode

ser

xlExclusive
xlNoChange

uma

das

seguintes

constantes:

(modo
padro

(no

xlShared

alterar

exclusivo)
o

modo

(lista

de

acesso)

compartilhada)

Se este argumento for omitido, o modo de acesso no ser alterado. Esse


argumento ignorado quando voc salva uma lista compartilhada sem
alterar o nome do arquivo. Para alterar o modo de acesso, use o mtodo
ExclusiveAccess.
ConflictResolution XlSaveConflictResolution opcional.
XlSaveConflictResolution

pode

ser

uma

das

seguintes

constantes:

xlUserResolution (exibir a caixa de dilogo de soluo de conflitos)


xlLocalSessionChanges (aceitar automaticamente as alteraes do usurio
local)
xlOtherSessionChanges (aceitar outras alteraes em vez das alteraes
do

usurio

local)

Se este argumento for omitido, a caixa de dilogo de soluo de conflitos


ser exibida.
AddToMru Variant opcional. True para adicionar esta pasta de trabalho
lista de arquivos usados recentemente. O valor padro False.
TextCodePage Variant opcional. No usado no Microsoft Excel em ingls
americano.
TextVisualLayout Variant opcional. No usado no Microsoft Excel em
ingls americano.
Local Variant opcional. True salva os arquivos no idioma do Microsoft
Excel (incluindo as configuraes do Painel de controle). False (padro)
salva os arquivos no idioma do Visual Basic for Applications (VBA), que
geralmente o ingls (E.U.A.), a menos que o projeto VBA em que
Workbooks.Open est sendo executado seja um projeto VBA XL5/95
antigo e internacionalizado.

Copy

Copia a planilha para outro local da pasta de trabalho.


expresso.Copy(Before, After)
expresso necessria. Uma expresso que retorna um dos objetos acima.
Before Variant opcional. A planilha antes da qual a planilha copiada ser
inserida. No possvel especificar Before se After for especificado.
After Variant opcional. A planilha aps a qual a planilha copiada ser
inserida. No possvel especificar After se Before for especificado.

Vous aimerez peut-être aussi