Views

...

Important:

Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog podem ser tratados como consultoria freelance.

E-mails

Deixe seu e-mail para receber atualizações...

eBook Promo

VBA Excel - Trabalhado com múltiplas WorkSheets - 01

Hello folks!

Existem diversos casos nos quais desejemos realizar uma única e mesma ação em várias worksheets ao mesmo tempo.

Isso pode incluir imprimi-las ou copiá-los para outro local ou mesmo a editá-las em suas várias worksheets numa única etapa.

Em alguns casos processar uma worksheet de cada vez produzirá um resultado diferente do que se pode obter ao trabalhar em várias worksheets simultaneamente. Em outros casos, pode ser apenas uma questão de conveniência.

De qualquer modo no seu caso pode ser apenas uma questão de aprendizado de como fazê-lo.

Dois exemplos onde os resultados são diferentes:
Quando se copia um gráfico, e o dados associados a este, num único processo para outra pasta de trabalho, as referências ao gráfico também são atualizadas, fazendo referência aos dados da nova pasta. No entanto, se estas são copiados individualmente, o gráfico faria referência à worksheet original.

Outro exemplo pode ser observado no momento da impressão simultânea de várias worksheets, ao imprimi-las as páginas serão numeradas sequencialmente. Faça isso uma folha de cada vez e as páginas serão numeradas separadamente. Além disso, cada folha será um trabalho de impressão separado. Enquanto alguns podem não considerar isto como um grande problema, para outros pode ser.

Nesta dica veremos como trabalhar com várias folhas através de código VBA.

Usando o gravador de macro
Começando com o nosso amigo de confiança, o gravador de macro, no código temos a impressão de duas folhas é:

Dim nPlan As String
Dim nChart As String
Dim nSheet As String

Sheets (Array ( nPlan, nChart)). Selecione
Sheets ( nSheet). Activate

Let Application.ActivePrinter = "HP-Printer on Ne01:"

ActiveWindow.SelectedSheets.PrintOut Copies: = 1, ActivePrinter: = "Acrobat Distiller Ne06 em:", Collate: = True

Observe que o código utiliza essencialmente uma matriz com um índice para o endereçamento (Sheets(1)), ao invés da típica sintaxe Sheets("Sheet1"). Isso permitirá o funcionamento em várias worksheets ao mesmo tempo.
 
Twitter: @officespecialis
             @brzexceldevelop
             @brzaccessdevel



André Luiz Bernardes
A&A - WORK, DON´T PLAY!
http://al-bernardes.sites.uol.com.br/
bernardess@gmail.com

eBooks VBA na AMAZOM.com.br

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine