Como clicar em uma célula em A5: A10 na “Folha 2” e ter esse valor de célula clicada inserido na célula C3 na “Folha 1”

0

Eu tenho uma pasta de trabalho com duas folhas, chamada Sheet 1 e Sheet 2 .

Em Sheet 2 , tenho um intervalo A5:A10 . Gostaria de poder clicar em uma célula nesse intervalo e ter seu conteúdo inserido em uma célula em Sheet 1 .

Portanto, o intervalo A5:A10 é

1001  

1002 

1003

1004

1005

1006

Eu gostaria de clicar na célula A6 (em Sheet 2 ) e ter o valor de 1002 da A6 em Sheet 1 C3 . Então, C3 agora tem 1002.

Até agora eu tenho que inserir o valor em Sheet 1 manualmente, mas gostaria de não apenas hiperlink dentro do documento, mas também alterar o valor do C3.

    
por Lucas Bassoli 12.07.2018 / 16:13

1 resposta

0

Digite a seguinte macro de eventos na área de código da planilha de Sheet2 :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim A As Range
    Set A = Range("A5:A10")

    If Intersect(Target, A) Is Nothing Then Exit Sub

    Cancel = True
    Application.EnableEvents = False
        Target.Copy Sheets("Sheet1").Range("C3")
    Application.EnableEvents = True
End Sub

Observe que o código usa Sheet1 em vez de Folha 1 . (mude isto se você estiver usando Sheet 1 )

Por ser um código de planilha, é muito fácil instalar e usar automaticamente:

  1. clique com o botão direito do mouse no nome da guia próximo à parte inferior da janela do Excel
  2. selecione Exibir código - isso abre uma janela do VBE
  3. cole o material e feche a janela do VBE

Se você tiver alguma dúvida, tente primeiro em uma planilha de teste.

Se você salvar a pasta de trabalho, a macro será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como .xlsm em vez de .xlsx

Para remover a macro:

  1. abrir as janelas do VBE como acima
  2. limpe o código
  3. feche a janela do VBE

Para saber mais sobre macros em geral, consulte:

link

e

link

Para saber mais sobre macros de eventos (código da planilha), consulte:

link

As macros devem estar ativadas para que isso funcione!

EDIT # 1:

Para permitir que a macro deposite dados em uma planilha de proteção:

  1. Desproteger a planilha
  2. Desbloquear células específicas, como C3
  3. Proteger novamente a planilha

Isso permitirá que a macro (e o usuário) insira dados na Planilha e ainda proteja fórmulas, etc.

EDIT # 2:

Para evitar a cópia do formato, use isso:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim A As Range
    Set A = Range("A5:A10")

    If Intersect(Target, A) Is Nothing Then Exit Sub

    Cancel = True
    Application.EnableEvents = False
        Target.Copy
        Sheets("Sheet1").Range("C3").PasteSpecial Paste:=xlPasteValues
    Application.EnableEvents = True
End Sub

Para "dar o pontapé inicial" à rotina após um erro, coloque esta macro em um módulo padrão e execute-a:

Sub qwerty()
    Application.EnableEvents = True
End Sub
    
por 12.07.2018 / 17:46