Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador Status. Mostrar todas as postagens
Mostrando postagens com marcador Status. Mostrar todas as postagens

VBA Excel - Barra de Status Informativa - Info Status Bar




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. 

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 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

Tags: Barra de Status, Bernardes, Excel, information, iniciantes, Microsoft, MS, Office, range, select, Status, Status Bar, VBA




30 Postagens em Janeiro!

header_home01.jpg

Sim, a linha é tênue, compartilhar informações relevantes com qualidade é muito difícil, mas realmente sinto motivos para ficar contente.

Não é fácil ter postado na média praticamente um artigo por dia com qualidade. 

Sei que o conteúdo pôde realmente ser relevante aos frequentadores deste Blog.

Agradeço a todos que não só consultaram, mas enviaram meus artigos com a referência deste link para outros interessados no mundo do VBA.

A algum tempo atrás fiz questão de colocar o número de pessoas que visitam este blog, para que os mais atenciosos percebam que estão retirando informações de um local bem consultado e altamente relevante para a comunidade desenvolvedora.






Continuarei postando o necessário e o possível, compartilhar conhecimento é algo realmente muito importante. Tem causado a promoção de muitas pessoas e aberto oportunidade de iúmeras outras ampliarem o seu conhecimento sobre VBA, Office, programação, desenvolvimento, Dashboard, Reports, etc...

Continuem a vir aqui para esclarecer suas dúvidas!


Atenciosamente,








A&A® - Work smart, not hard.
 Skype: inanyplace
Twitter: @bernardess

VBA Excel - Barra de Progresso na Barra de Status - Show a Progress Meter in the Status Bar




Show a Progress Meter in the Status Bar



Olá pessoal!

Complementando o tópico anterior, segue novo Post com opção de utilização da nossa Barra de Status do MS Excel. Chamaremos este exemplo de SHOW A PROGRESS METER IN THE STATUS BAR.

Sim, é bom lembrar que este exemplo de código serve para ampliar a visão sobre como utilizar outras informações úteis na Barra de Status, fica mais um exemplo!

PASSO ÚNICO





Insira o código da função e efetue chamadas a ela.




Sub ShowProgress2()



    ' Author                        Contact                        Place



    ' André Luiz Bernardes          bernardess@gmail.com           http://inanyplace.blogspot.com/



    ' Show a Progress Meter in the Status Bar







    Let Application.DisplayStatusBar = True







    ' 1ª Mensagem



    Let Application.StatusBar = String(5, ChrW(9609)) & "Processando..."







    Application.Wait Now + TimeValue("00:00:02")







    ' 2ª Mensagem



    Let Application.StatusBar = String(10, ChrW(9609)) & "Ainda processando..."







    Application.Wait Now + TimeValue("00:00:02") '-- Replace this line with your own code to do something







    ' 3ª Mensagem



    Let Application.StatusBar = String(15, ChrW(9609)) & "Finalizando..."







    Application.Wait Now + TimeValue("00:00:02") '-- Replace this line with your own code to do something







    Let Application.StatusBar = False



End Sub

References: André Luiz BernardesDataPigTechnologies.com

Tags: Bernardes, iniciantes, MS, Microsoft, Office, VBA, Excel, Status Bar, Barra de Status, Status, information, range, selected



André Luiz Bernardes
A&A® - Work smart, not hard.


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.

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ê 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, select

Inspiration: 











diHITT - Notícias