Notifications
Clear all

BOTÃO VOLTAR AO TOPO

15 Posts
5 Usuários
0 Reactions
6,725 Visualizações
 CZa
(@cza)
Posts: 61
Trusted Member
Topic starter
 

Boa tarde, pessoal!

Acham possível desenvolver uma rotina vinculada à um formulário que simule o botão de "Voltar ao topo" que vemos em sites, por exemplo? Esse formulário deveria ficar fixo na parte de baixo da planilha e acompanhar o deslocamento da página, caso desca a tela, ele tem que permanecer no mesmo local, de forma que possa navegar livremente pela minha pasta de trabalho...

Desde já, grato pessoal...

 
Postado : 16/08/2016 9:47 am
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde CZa,

Pelo que entendi você quer um botão que retorne ao topo de sua planilha automaticamente.
Uma possibilidade é criar um formulário, alterar a propriedade ShowModal para false e a Left e Top para aparecer automaticamente em uma posição adequada.
Nesse formulário você coloca um botão, e o comando Range("A1").Select.

Assim você pode mecher na planilha e o formulário estará do lado, e clicando no botão você volta para o topo.

att,

 
Postado : 16/08/2016 12:26 pm
 CZa
(@cza)
Posts: 61
Trusted Member
Topic starter
 

Opa, isso mesmo Brunão...

Então, do ponto de vista funcional é exatamente isso que gostaria. Perfeito.
Porém do ponto de vista estético não me agradou... Havia pensado em alguma imagem em png de seta, dai sobre ela teria o código que a deixasse fixa semelhante ao que aconteceu com o formulário, entende? Mais questão de layout mesmo...

 
Postado : 16/08/2016 2:40 pm
(@edivan)
Posts: 119
Estimable Member
 

Insira a seta ou a imagem no local desejada>>> CLique com botão direito escolha>>> Atribuir macro>>> clique em Novo>>> dentro do código que será gerado escreva Range("A1").select... fecha as janelas clique na planilha e depois tente clicar na seta....

Visite meu blog: programacaopassoapasso.wordpress.com

 
Postado : 17/08/2016 4:28 am
 CZa
(@cza)
Posts: 61
Trusted Member
Topic starter
 

Bom dia, Edvan... Vlw pelo apoio...

Então, acho que não entendeu o que gostaria de fazer, vamos lá. A seta terá o hiperlink na célula (ou Range("A1").select no VBA), isso é tranquilo. O problema tá em conseguir deixar essa imagem fixa na tela, entende? Por exemplo, se der um Page Down na planilha e a tela descer, a seta continue lá, no mesmo lugar...

Fiz um exemplo com userform seguindo a sugestão do bruno, coloquei em anexo pra dar uma esclarecida no que pretendo...

 
Postado : 17/08/2016 7:30 am
 CZa
(@cza)
Posts: 61
Trusted Member
Topic starter
 

E ai pessoal, alguém tem uma ideia de como posso fazer?

 
Postado : 19/08/2016 8:15 pm
 CZa
(@cza)
Posts: 61
Trusted Member
Topic starter
 

Consegui uma rotina aqui, mas gostaria de adaptar algumas coisas...

Ela faz exatamente o que preciso, porém só duas coisas queria adaptar: 1- Ela percorre apenas quando clico na célula, se por exemplo eu descer usando o scroll do mouse, ela já não acompanha, só se selecionar a célula. É possível configura-la à tela?
2- A imagem só acompanha quando desloco pra baixo, se for para a direita ou esquerda, a imagem não acompanha. Também é possível ajustar?

Abaixo segue o código...

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim lgLIN As Long, shFIG As Object
    Set shFIG = ActiveSheet.Shapes("MENU")
        With ActiveWindow.VisibleRange
        lgLIN = .Row + .Rows.Count - 1
    End With
        With shFIG
        shFIG.Top = shFIG.Top + (lgLIN - .BottomRightCell.Row) * .BottomRightCell.RowHeight
    End With
End Sub
 
Postado : 19/08/2016 8:45 pm
(@osvaldomp)
Posts: 858
Prominent Member
 

Veja se serve assim.
A figura será reposicionada ao mudar a célula selecionada após deslizar a tela. O evento "scroll" (deslizar a tela) não dispara macro.
Altere os parâmetros 20 para adequar ao tamanho da sua tela e altere o nome da figura de acordo.
Instale o código abaixo no módulo da planilha de interesse.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 With ActiveSheet.Shapes("Seta para cima 1")
  .Left = ActiveWindow.VisibleRange(2, 20).Left
  .Top = ActiveWindow.VisibleRange(20, 2).Top
 End With
End Sub

Osvaldo

 
Postado : 19/08/2016 9:24 pm
 CZa
(@cza)
Posts: 61
Trusted Member
Topic starter
 

Perfeito, Osvaldo!

Brigadão pela força, infelizmente apenas a questão do scroll não é possível...

 
Postado : 20/08/2016 6:50 am
 CZa
(@cza)
Posts: 61
Trusted Member
Topic starter
 

Osvaldo, só um probleminha...

O comando Worksheet_SelectionChange desativa o ctrl+z da guia onde ele é inserido... Tem algum solução pra isso?

 
Postado : 20/08/2016 7:29 am
(@osvaldomp)
Posts: 858
Prominent Member
 

Seguem 2 alternativas que não desabilitam o Ctrl+z. Dê duplo clique em qualquer célula vazia para rodar o código.
O primeiro código ativa a célula 'A1' (equivale a Ctrl+Home) e o segundo ativa a célula da linha 1 correspondente à coluna em que for dado o duplo clique.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Value = "" Then Me.[A1].Activate
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Value = "" Then Me.Cells(1, Target.Column).Activate
End Sub

Osvaldo

 
Postado : 20/08/2016 8:31 am
 CZa
(@cza)
Posts: 61
Trusted Member
Topic starter
 

Osvaldo, acho que não entendi direito a funcionalidade dessa rotina, poderia me explicar? Inseri-a nas demais rotinas e continuou na mesma, ou devo usa-la pra adaptar a que vc me enviou anteriormente?

 
Postado : 20/08/2016 8:58 pm
(@osvaldomp)
Posts: 858
Prominent Member
 

Os dois últimos códigos são alternativas aos códigos anteriores.

Faça os testes com um de cada vez e no lugar dos anteriores ;) :)

Osvaldo

 
Postado : 21/08/2016 5:54 am
 CZa
(@cza)
Posts: 61
Trusted Member
Topic starter
 

Ahh tá, agora entendi Osvaldo...

Consegui contornar essa questão do ctrl+z de forma paleativa, mas o que importa é o resultado final que foi conforme gostaria.

Mais uma vez obrigado amigo, abraços...

 
Postado : 22/08/2016 11:29 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

CZa

Se a dúvida foi resolvida, marque a resposta que melhor atendeu, como Resolvido

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/08/2016 12:14 pm