Notifications
Clear all

Posicionar forma para botão

4 Posts
2 Usuários
2 Reactions
1,019 Visualizações
(@marcusvmo)
Posts: 5
Active Member
Topic starter
 

Boa tarde pessoal,

 

Como eu defino uma posição exata de uma forma? Consigo colocar ela dentro de uma célula?

 

Ou melhor, consigo usar uma célula como botão com macro, sem adicionar uma forma?

 

Abraço!

 
Postado : 02/10/2020 12:17 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 
Postado por: @marcusvmo

Como eu defino uma posição exata de uma forma? Consigo colocar ela dentro de uma célula?

Se vc usar a tecla ALT enquanto arrasta a forma, o vértice que estiver mais próximo de um dos vértices da célula é atraído digamos que "magneticamente" e se encaixará perfeitamente na célula. Depois de encaixar um deles (p. ex. o canto sup. esquerdo), é só fazer o mesmo com o vértice diametralmente oposto ou com uma das arestas da forma que o encaixe é perfeito.

Postado por: @marcusvmo

... consigo usar uma célula como botão com macro, sem adicionar uma forma?

Vc poderia usar o evento de planilha Worksheet_SelectionChange para tal fim. O código seria executado cada vez que vc selecionasse a célula alvo (definida pelo parâmetro Target). No entanto, entre duas execuções consecutivas vc teria que logicamente selecionar outra célula para que o evento volte a ocorrer.

Outras duas armadilhas de evento igualmente úteis seriam o clicar duas vezes em sua célula-alvo (Worksheet_BeforeDoubleClick) ou o clicar com o botão direito nessa célula (Worksheet_BeforeRightClick).

 
Postado : 04/10/2020 8:00 pm
LaerteB and marcusVMO reacted
(@marcusvmo)
Posts: 5
Active Member
Topic starter
 

Muito obrigado pessoal!!

 

Eu consigo extrair a linha de onde eu posicionei a forma? Ou a posição não é referenciada com colunaa e linhas?

 
Postado : 05/10/2020 10:32 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Essa informação sim, que eu saiba só por VBA. Para isso o modelo de objetos do Excel dispõe das propriedades TopLeftCell e BottomRightCell que retornam um objeto Range onde estão os vértices do canto superior esquerdo e inferior direito respectivamente.

Por exemplo, se a forma estiver selecionada, o código abaixo retorna a linha, coluna e endereço da célula onde está o canto sup. esquerdo:

Linha = Selection.TopLeftCell.Row
Coluna = Selection.TopLeftCell.Column
Endereço = Selection.TopLeftCell.Address

 
Postado : 05/10/2020 11:06 am