APERFEIÇOANDO O CÓD...
 
Notifications
Clear all

APERFEIÇOANDO O CÓDIGO

4 Posts
3 Usuários
0 Reactions
855 Visualizações
(@luizhcosta)
Posts: 420
Honorable Member
Topic starter
 

Bom dia Caros colegas.

mais uma vez buscando a ajuda para um melhoramento em um código, que recebi de um outro colega daqui. O código oculta e reexibe linhas com uma condição. Está funcionando muito bem. Mas acredito que pode ser melhorado.

A primeira modificação é deixar o código próprio de uma aba da planilha. Ele é acionado pelo evento "calcular", a intenção é que esse cálculo seja o da planilha onde está o código apenas.

A segunda modificação seria uma mensagem enquanto o código é executado. Hoje fica apenas a ampulheta do próprio windows. Minha intenção seria uma mensagem personalizada.

Abaixo posto o código, antes quero agradecer a todos pela ajuda em todas as minhas solicitações. Obrigado !

Private Sub Worksheet_Calculate()
Application.ScreenUpdating = False
For Each cell In Range("bw1:bw117")
If cell.Value = 0 Then
cell.EntireRow.Hidden = True
Else
cell.EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub
 
Postado : 06/02/2015 7:53 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Se ela está usando o evento calculate da planilha, significa que é da planilha, ou seja, só vai executar quando a planilha for recalculada.

A parte da mensagem, pode ser na barra de status:

Private Sub Worksheet_Calculate()
Application.StatusBar = "atualizando"
Application.ScreenUpdating = False
For Each cell In Range("bw1:bw117")
If cell.Value = 0 Then
cell.EntireRow.Hidden = True
Else
cell.EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
Application.StatusBar = ""
End Sub

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 06/02/2015 8:07 am
(@mussato)
Posts: 11
Active Member
 

Bom dia Luiz,

Você poderia ser mais específico? Você quer que esse código seja executado apenas para uma única planilha no seu arquivo, ou quer que esse código seja executado dinamicamente na planilha que estiver ativa?

Você poderia resolver esse problema criando um range fixo na planilha e dando um nome qualquer a ele. Para isso abra o gerenciador de nomes ou use o atalho Ctrl + F3.

V. Mussato
Office Developer
-------------------
Windows 7 64 bits
Office 2013

 
Postado : 06/02/2015 8:08 am
(@luizhcosta)
Posts: 420
Honorable Member
Topic starter
 

Ao colega, gtsalikis

A solução foi muito boa. Testei e a mensagem é exibida, quando necessário, na barra de STATUS. Mas a mensagem deve chamar a atenção do usuário, ou seja, poderia ser uma caixa no centro da tela. As pessoas fixam o olhar no centro da tela para algumas ações.

Ao colega, Mussato
O evento é da planilha ativa. Faço uma conculta na plan2, por exemplo, e os cálculos estão nesta planilha.

Obrigado pelas sugestões.

 
Postado : 06/02/2015 9:14 am