Notifications
Clear all

[Resolvido] Clicar na Célula e alterar outra célula  

  RSS
willianrc
(@willianrc)
Trusted Member Registered

Olá, tenho uma planilha e gostaria de saber se existe algum metódo "SOMENTE POR FORMULAS" (sem macros por favor), quando Clicar na Célula D4 automaticamente trocaria o valor da Célula D6 , no caso seria D6-1 , e quando eu clicasse na Célula P4 seria D6+1. Eu tentei fazer por =HIPERLINK(SOMA(D6+1);"Proximo>>") , mas nao deu certo. Alguem consegue me ajudar ? Segue em anexo a planilha. A idéia é fazer tipo 2 botoes (<<Anterior e Proximo>>) e aparecer as datas na linha D6:P6.

Desde ja agradeço

Postado : 07/10/2020 6:59 pm
EdsonBR
(@edsonbr)
Honorable Member Moderator

Olá, @willianrc.

Puramente por fórmula desconheço alguma maneira de fazer.

Sem VBA dá pra fazer razoavelmente* bem com Botão de Rotação/SpinButton ou Barra de Rolagem/ScroolBar, respectivamente dos Controles de Formulário e Controles ActiveX (Guia Desenvolvedor > grupo Controles > Inserir).

No exemplo usei um par de SpinButtons (AcX).

*Disse razoavelmente bem pq mesmo encobrindo com um retângulo a metade, não consegui esconder o outro lado das setinhas no momento em que se clica nelas. Mas fica do jeito certo ao se clicar fora delas. Se algum colega tiver algum truque pra isso, fiquem à vontade para contribuir tb.

Postado : 07/10/2020 11:10 pm
willianrc
(@willianrc)
Trusted Member Registered

@edsonbr muito obrigado por responder. 

Mas foi o que eu pensei, procurei por dias algo que nao existe. Se alguem souber, por favor compartilhe seu conhecimento.

Postado : 08/10/2020 6:55 am
willianrc
(@willianrc)
Trusted Member Registered

Eu tentei fazer um exemplo mas esta aparecendo um erro 'Tipos incompatíveis'. Alguém me ajuda ai?

Postado : 09/10/2020 4:19 pm
EdsonBR
(@edsonbr)
Honorable Member Moderator

@willianrc, boa tarde.

A Propriedade Range.Text é somente leitura, vc não pode atribuir valor a ela. Tem que usar a .Value ou .Value2. Sugestão:

Private Sub CommandButton1_Click()
  If IsDate(Range("D6").Value) Then Range("D6").Value = Range("D6").Value - 7
End Sub
Private Sub CommandButton2_Click()
  If IsDate(Range("D6").Value) Then Range("D6").Value = Range("D6").Value + 7
End Sub

Pergunta: chegaste a ver o anexo que enviei? Não foi usado VBA nele.

Edit:

Naquele arquivo que te enviei no post anterior, se vc quiser um salto de 7 em 7 dias, é só alterar a propriedade SmallChange para 7 em cada um dos dois botões: na guia Desenvolvedor, ative primeiro o botão "Modo de Desing" e o botão ao lado, "Propriedades" e clique sobre os botões. Role até a propriedade mencionada, altere o valor, saia do modo de Design e feche Propriedades.

Postado : 09/10/2020 4:35 pm
willianrc
(@willianrc)
Trusted Member Registered

@edsonbr Fiz as alteraçoes no seu exemplo, ficou show de bola, muito obrigado por compartilhar seu conhecimento. Um forte abraço.

Postado : 09/10/2020 5:21 pm