24.08.2020 Views

Programando o Excel ® Vba Para Leigos - 2ª Ed 2013 NoDRM (1)

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 11: Procedimentos e Eventos Automáticos

173

Uma pasta de trabalho que contém este código está disponível no site

deste livro.

Dim OldSheet As Object

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

Set OldSheet = Sh

End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

Dim Msg As String

If TypeName(Sh) + “Chart” Then

Msg = “Esse gráfico contém “

Msg = Msg & ActiveChart.SeriesCollection(1).

Points.Count

Msg = Msg & “ pontas de dados.” & vbNewLine

Msg = Msg & “Clique OK para retornar a “ & OldSheet.

Name

MsgBox Msg

OldSheet.Activate

End If

End Sub

Eventos de ativação de pasta de trabalho

O Excel também reconhece o evento que ocorre quando você ativa ou

desativa uma pasta de trabalho em especial. O seguinte código, que

está contido na janela Código do objeto EstaPasta_de_Trabalho, é

executado sempre que a pasta de trabalho é ativada. O procedimento

apenas maximiza a janela da pasta de trabalho.

Private Sub Workbook_Activate()

ActivateWindow.WindowState = xlMaximized

End Sub

O código Workbook_Deactivate, mostrado a seguir, é executado quando

uma pasta de trabalho é desativada. Eis um exemplo de procedimento

que copia a faixa selecionada. Ele pode ser útil se você estiver copiando

dados de muitas áreas diferentes e colando-os em uma pasta de trabalho

diferente. Selecione a faixa, ative a outra pasta de trabalho, selecione

o destino e pressione Ctrl+V para colar os dados copiados.

Private Sub Workbook_Deactivate()

ThisWorkbook.Windows(1).RangeSelection.Copy

End Sub

Simples assim, este procedimento exigiu algumas tentativas antes que

eu conseguisse fazê-lo funcionar corretamente. Primeiro, eu tentei isto:

Selection.copy

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!