Questão Acione a macro com UM clique em uma célula específica


Você se importaria em apontar uma maneira de iniciar uma macro no Excel 2010 clicando apenas uma vez em uma célula especificada? Eu tinha visto uma solução em algum lugar, mas agora não posso rastreá-lo de volta.


5


origem




Respostas:


O código a seguir será disparado quando a célula D4 for clicada na planilha.

Clique com o botão direito do mouse na guia da planilha e selecione "View Code". Cole isso na janela de código:

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Count = 1 Then
        If Not Intersect(Target, Range("D4")) Is Nothing Then
            MsgBox "Hello World"
        End If
    End If
End Sub

Ajuste a referência da célula de "D4" para refletir sua célula desejada. Substitua a linha MsgBox pelo seu código desejado.


8



Bem no local. - Noob Doob
Existe uma maneira de fazer isso para que apenas os cliques do mouse criem a alteração, portanto, mover a célula com as teclas de direção não dispara a macro? No momento estou usando OnDoubleClick, mas isso é um pouco entediante. - CLockeWork
@CLockeWork, esta é uma questão diferente. Por que você não publica uma nova pergunta? Você pode vincular a este para referência e fundo. - teylyn
Como eu testei isso, a macro não é disparada, movendo o ponteiro sobre a célula. O clique é necessário também. - Noob Doob
Sim, é isso que você especificou na pergunta: "clicando uma vez em uma célula especificada". - teylyn


O evento Worksheet_SelectionChange não é acionado a menos que o valor da célula seja alterado. Basta clicar na célula NÃO dispara o evento.


-2



Isto é não uma resposta para a pergunta original. Para criticar ou solicitar esclarecimentos de um autor, deixe um comentário abaixo do post - você sempre pode comentar sobre suas próprias postagens, e quando você tiver o suficiente reputação você poderá comentar em qualquer post. - DavidPostill♦
É a mudança SELECTION, então sim o clique dispara o evento, se a célula não estiver selecionada. Minha solução foi que, quando a célula foi selecionada, executei a macro e alterei a seleção para uma célula não importante (a alteração foi feita dentro do código executado) (com a alteração de seleção, não é possível clicar na mesma célula mais de uma vez consecuteviley e, portanto, executar a macro várias vezes, a menos que você altere a célula selecionada depois de terminar) - Noob Doob