Escolar Documentos
Profissional Documentos
Cultura Documentos
Julho 2015
1. Introduo
2. Mtodo da Copia
1. Sintaxe
2. O que acontece
3. Exemplos de uso
3. Mtodo Add
1. Sintaxe
2. Exemplos de uso
4. As funes de verificao
1. Se a planilha j existe em uma pasta
2. Cdigo de chamada das funes de verificao
5. Complementos teis do Office 2013
1. Cpia parcial
2. Mtodo Add2
Introduo
Existem duas maneiras de proceder, dependendo do resultado esperado: o mtodo da Cpia, para obter
uma cpia de uma folha existente, ou o mtodo Add, para adicionar uma nova folha em branco ao seu
arquivo. Na programao, devemos verificar se o nome da nova folha est conforme, ou seja, o nome da
folha no deve ser idntico ao de uma folha j existente, assim como no deve conter certos caracteres
proibidos. Em ambos os casos, os controles devem ser os mesmos.
Mtodo da Copia
Este mtodo realiza uma cpia conforme a folha que voc copia. O formato e os dados sero idnticos na
Sintaxe
Expresso: .Copy (Before, After). Expresso representa uma Sheet (planilha) ou Worksheet (planilha de
trabalho). Os parmetros ("Before e After") so opcionais. Voc poder especificar apenas um desses dois
parmetros. Eles so tipo Variante e representam a folha antes ou depois daquela que voc quer copiar.
Se o parmetro for omitido, a folha automaticamente copiada em uma nova planilha.
O que acontece
Ao criar uma nova folha por esse mtodo, ela: criada no lugar desejado (antes ou depois de outra folha
da pasta), nomeada pelo nome da folha copiada (ex:: Sheet1 > Sheet1 (2)), idntica folha copiada, E
torna-se a planilha ativa. Se a folha for copiada em uma nova pasta, esta se torna a planilha ativa.
Exemplos de uso
Copie a "Plan1" depois da "Plan3"
Worksheets("Plan1").Copy After:=Worksheets("Plan3")
Copie a planilha de ndice 1 na ltima posio do arquivo, independentemente do nome da ltima planilha:
Sheets(1).Copy After:=Sheets(Sheets.Count)
Mtodo Add
Crie uma nova planilha de clculo, de grfico ou de macro. A nova planilha se tornar a planilha ativa. E,
sendo uma nova folha, esta ser virgem de qualquer dado e de qualquer formato.
Sintaxe
Expresso: .Add (Before, After, Count, Type). Expresso representa um objeto Sheet ou Worksheet. Os
parmetros (Before, After, Count e Type) so opcionais. Voc deve especificar apenas um dos parmetros
Before e After. Estes so do tipo Variante e representam a planilha antes ou depois da qual voc deseja
colocar a sua nova planilha. O parmetro Count (opcional) do tipo Variante. Ele representa o nmero de
planilhas que voc deseja adicionar. O parmetro tipo representa o tipo de planilha a ser adicionada.
Trata-se de: xlWorksheet, adiciona uma planilha, xlChart, adiciona uma planilha de grfico,
xlExcel4MacroSheet, adiciona uma planilha do Excel4, xlExcel4IntlMacroSheet, adiciona uma planilha de
macros do Excel, xlDialogSheet, adiciona uma planilha de caixa de dilogo. Ateno: todos estes
parmetros devem ser nomeados. Convm, ento, nome-los. Esta sintaxe reenviar um erro:
ActiveWorkbook.Sheets.Add Before:=Worksheets(Worksheets.Count), , 1, xlChart
Exemplos de uso
Coloque uma planilha depois da ltima planilha do arquivo:
Sheets.Add After:=Worksheets(Worksheets.Count)
Ateno: as trs planilhas aparecem sucessivamente, a ordem poder ser invertida. A planilha ativa a
ltima a ser criada. Adiciona uma planilha de grfico de um arquivo chamado "Wbk18" (Open!), depois a
planilha com o nome "Plan4". WorkBooks("Wbk18").Sheets.Add After:=Worksheets("Plan4"), Type:=xlChart .
Ateno: A localizao da planilha criada pode reservar algumas pequenas surpresas...
As funes de verificao
Se a planilha j existe em uma pasta
Sub Principal()
Dim strNewName As String, strCara As String
strNewName = "NewSheet"
If Valid_Name(strNewName, strCara) = False Then
MsgBox "O nome: " & strNewName & " invalido." & vbCrLf & _
"Um nome de planilha no pode
conter o caractere : " & strCara, vbCritical
Exit Sub
End If
If Planilha_Exist(ThisWorkbook.Name, strNewName) = True Then
MsgBox "O nome: " & strNewName & " invalido." & vbCrLf & _
"Este nome de planilha j usado nesta pasta.", vbCritical
Exit Sub
End If
ThisWorkbook.Sheets.Add 'Ou: ThisWorkbook.Sheets("Plan1").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = strNewName
End Sub
Cpia parcial
Este mtodo s est disponvel a partir das verses do Office 2013. Voc s quer copiar um intervalo de
clulas da planilha "Plan1" para as planilhas "Plan3", "Plan5" e "recop". Para isso, voc pode usar o
mtodo FillAcrossSheets:
Planilhas = Array("Plan3", "Plan5", "Plan7")
Sheets (Folhas).FillAcrossSheets Worksheets("Plan1").Range("A1:C5")
Os parmetros deste mtodo so: Range (Intervalo): obrigatrio Tipo: opcional. Ele indica como copiar o
intervalo e pode ter trs valores: - xlFillWithAll: copia o contedo e os formatos. - xclFillWithContents: copia
o contedo. - xlFillWithFormats: copia os formatos.
Mtodo Add2
Disponvel a partir do Office 2013. Este mtodo est disponvel apenas para as colees de objetos
grficos e retorna um erro "Run Time" quando usado com objetos "Sheets e WorkSheets". No existe
mais informao no site "Microsoft.com", exceto a sintaxe: Expresso: .Add (Before, After, Count,
NewLayout). Expresso representa um objeto Worksheet. Os parmetros so idnticos aos do mtodo
Add, fora a substituio do Tipo pelo parmetro NewLayout. Se NewLayout tem o valor true, o grfico
inserido com as novas regras de layout dinmico (o ttulo e a legenda aparecem somente se houver vrias
sries.).
Traduo feita por Ana Spadari
Este documento, intitulado Como adicionar uma folha em uma planilha no VBA a partir de CCM (br.ccm.net) est disponibilizado sob
a licena Creative Commons. Voc pode copiar, modificar cpias desta pgina, nas condies estipuladas pela licena, como esta nota
aparece claramente.