Como referenciar a mesma célula na planilha anterior no excel?

3

Eu sei como fazer referência a uma célula em outra planilha no Excel, mas gostaria de saber se há alguma maneira de automatizar esse processo, de modo que, se eu duplicar uma planilha, ela atualizará suas referências à planilha anterior em sequência.

Por exemplo, digamos que a folha n tenha uma célula que faça referência a uma célula na planilha n-1. Se eu tiver as folhas 1, 2 e 3, quero que a célula em 3 faça referência a uma célula em 2. Então, se eu duplicar 3 (fazendo a Folha 4), quero que a mesma célula em 4 faça referência à célula em 3.

Ordinariamente, eu teria a célula na folha 3 lida, 'Folha2'! A1. Então, se eu duplicar Sheet3 para fazer Sheet4, eu teria que ir para a mesma célula na Sheet4 e alterá-la de 'Sheet2'! A1 para 'Sheet3'! A1. Prefiro que essa alteração seja feita automaticamente quando eu duplicar a planilha.

Desculpe pela explicação prolixa, mas existe uma maneira de automatizar esse processo em vez de ter que fazer isso manualmente? Atualmente estou usando o preview do Excel 2013, mas também tenho o Excel 2012.

Obrigado!

    
por Argus9 26.12.2012 / 03:22

3 respostas

1

Encontrei minha solução aqui: j-walk.com/ss/excel/tips/tip63.htm . Acontece que as macros são extremamente poderosas! :)

Você pode criar uma função chamada sheetoffset no VBA para fazer isso

Function SHEETOFFSET(offset, Ref)
'   Returns cell contents at Ref, in sheet offset
    Application.Volatile
    With Application.Caller.Parent
        SHEETOFFSET = .Parent.Sheets(.Index + offset) _
         .Range(Ref.Address).Value
    End With
End Function
    
por 29.12.2012 / 20:57
0

Clique com o botão direito em qualquer guia da planilha e clique em "VER CÓDIGO"

Coloque o seguinte código no MÓDULO 1. (se não estiver lá, clique em INSERIR e MÓDULO)

Código

Function oldsheet(rng As Variant)
    Prevsn = "Sheet" & Val(Mid(ActiveSheet.CodeName, 6, (Len(ActiveSheet.CodeName) - 5))) - 1
    With Sheets(Prevsn)
        oldsheet = .Range(rng)
    End With
End Function

E a nova planilha a seguinte fórmula

=oldsheet("J30")

Postado como está no link apenas para o caso de ser excluído.

Ref. retirado do link

    
por 29.01.2016 / 11:04
0

Use em celular como = Anterior (J30)

Function Prev(ByRef r As Range) As Variant
Application.Volatile
Prev = r.Parent.Previous.Range(r.Address).Value
End Function
    
por 24.02.2016 / 19:18