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 - Barra de Status Informativa - Info Status Bar

Info Status Bar

Automate Excel VBA - Status Bar Updating
Changing Microsoft Excel Status Bar

Olá pessoal!

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.

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ê um duplo 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 Range
  
    For Each i In Selection.Areas
        Let cCell = cCell + CDec(i.Rows.Count) * i.Columns.Count
    Next

    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 = True    
    Let 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 Integer
    Dim MyTimer         As Double
     
    Let Application.StatusBar = True
    
    ' Adapte este loop se for necessário.
    For x = 1 To 250
        Let MyTimer = Timer
        
        Do
        Loop While Timer - MyTimer < 0.03
         
        Application.StatusBar = "Progresso: " & x & " de 250: " & Format(x / 250, "Percent")
        
        DoEvents
    Next x
     
    Let Application.StatusBar = False
End Sub


References: André Luiz BernardesRick Rothstein, DataPigTechnologies.com, erlandsendata.no

Tags: Bernardes, iniciantes, MS, Microsoft, Office, VBA, Excel, Status Bar, Barra de Status, Status, information, range, selectec
 
André Luiz Bernardes
A&A® - Work smart, not hard.




eBooks VBA na AMAZOM.com.br

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine