Podemos aumentar a quantidade de visualizações sobre o que estamos fazendo, colocando detalhes na nossa Barra de Status do MS Excel. Chamaremos este exemplo de INFO STATUS BAR.
Antes de continuar, um pequeno parênteses, deixe seus comentários para este post.
Antes de continuar, um pequeno parênteses, deixe seus comentários para este post.
Como sempre fazemos, é bom lembrar que este exemplo de código serve para que possamos ampliar a nossa visão sobre como utilizar outras informações muito mais úteis do que estas na Barra de Status, fica o exemplo!
Ahhh, e faremos passo a passo para incluir os iniciantes.
Início
Já percebeu que ao selecionarmos um range de células, não conseguimos observar o range selecionado na'Name Box'? (Veja abaixo)
Tampouco, observamos este Range na Barra de Status.
PASSO 01
Com o intuito de inserirmos um código que possa demonstrar o que selecionamos, vá para o VBE (pressione Alt + F11), e então dê umduplo clique em 'EstaPasta_de_trabalho' (ou 'ThisWorbook' se a sua versão do MS Office estiver em inglês).
PASSO 02
Ao lado direito, na área do editor, copie e cole o código abaixo:Private Sub Workbook_SheetSelectionChange
(ByVal Sh As Object, ByVal Target As Range)' Author Contact Place' André Luiz Bernardes bernardess@gmail.com http://inanyplace.blogspot.com/' Mostra as células que foram marcadas na barra de status.Dim cCell As Variant, i As RangeFor Each i In Selection.AreasLet cCell = cCell + CDec(i.Rows.Count) * i.Columns.CountNext
Let Application.StatusBar = Replace(Selection.Address(0, 0) & " selecionadas (" & cCell & Left(" Célula(s)", 11 + (cCell = 1)) & ")", ",", ", ")
End Sub
PASSO 03
Agora quando selecionar qualquer parte da planilha, sempre observará algo similar a isso:
Muito bem, o exemplo acabou aqui. Mas lembre-se, este foi apenas uma aplicabilidade para a utilização da Barra de Status. Colocarei outras aplicações abaixo para que continue se exercitando:
Exemplo 01
Se você, no código VBA, desligou a atualização da tela, e seus códigos levarem algum tempo para processar, o usuário pode pensar que o computador parou de responder. Por isso, uma boa regra de programação é informar ao usuário sobre a evolução do processamento, exibindo [no mínimo] uma mensagem na Barra de Status na parte inferior da tela.Sub StatusBarSample()
Let Application.ScreenUpdating = False' Desliga a atualização da tela.' Certifica-se de que a Barra de Status estará funcional.Let Application.DisplayStatusBar = TrueLet Application.StatusBar = "Por favor, aguarde a execução da 1ª Parte..."' No ponto abaixo, algum código é adicionado para o processamento.Application.Wait Now + TimeValue("00:00:02")Let Application.StatusBar = "Aguarde a execução da 2ª Parte..."' Adicione algum código para o processamento da 2ª Fase.Application.Wait Now + TimeValue("00:00:02")Let Application.StatusBar = False
End Sub
Exemplo 02
Você tem um processo que leva algum tempo para ser executado. Talvez uns 30 segundos, talvez 10 minutos. De qualquer forma você quer que o usuário saiba que a macro está sendo executado e em que parte do processe está:Sub StatusBar()
' Author Contact Place' André Luiz Bernardes bernardess@gmail.com http://inanyplace.blogspot.com/' Efetua um contador.Dim x As IntegerDim MyTimer As DoubleLet Application.StatusBar = True' Adapte este loop se for necessário.For x = 1 To 250Let MyTimer = TimerDoLoop While Timer - MyTimer < 0.03Application.StatusBar = "Progresso: " & x & " de 250: " & Format(x / 250, "Percent")DoEventsNext xLet Application.StatusBar = False
End Sub
Tags: Barra de Status, Bernardes, Excel, information, iniciantes, Microsoft, MS, Office, range, select, Status, Status Bar, VBA