Duas células relacionadas: dê um valor em um, calcule o outro e vice-versa? [duplicado]

0

Como posso ter uma célula que usa o valor literal escrito nela ou calcula seu valor quando nenhum valor literal foi dado?

Por exemplo:

  • Tenho duas colunas: a coluna B com um preço que inclui o IVA e a coluna C com um preço sem IVA.
  • Se eu colocar um preço com IVA em B2, quero que a célula C2 calcule o preço sem IVA com base em B2.
  • Mas se eu colocar um preço sem IVA em C2, quero que a célula B2 calcule o preço com IVA de C2.

Eu quero dar essa planilha para minha mãe, que mal entende o Excel. Ela só precisa inserir os valores que conhece e a planilha deve derivar os outros valores disso.

    
por Daniel Pelsmaeker 12.11.2013 / 18:12

1 resposta

0

A seguir, uma solução baseada em macro. Coloque a seguinte macro de eventos na área de código da planilha:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim BC As Range, t As Range, v As Variant
    Dim r As Long
    Set t = Target
    Set BC = Range("B:C")
    If Intersect(t, BC) Is Nothing Then Exit Sub
    Application.EnableEvents = False
        r = t.Row
        v = t.Value
        If v = "" Then
            Range("B" & r & ":C" & r).Value = ""
        End If
        If IsNumeric(v) Then
            If Intersect(t, Range("C:C")) Is Nothing Then
                t.Offset(0, 1).Value = v * 1.2
            Else
                t.Offset(0, -1).Value = v / 1.2
            End If
        End If
    Application.EnableEvents = True
End Sub

Por ser um código de planilha, é muito fácil de 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 !

    
por 13.11.2013 / 20:30