É possível adicionar automaticamente células de uma nova planilha a uma fórmula no Excel?

2

Eu gostaria de criar uma nova planilha financeira para acompanhar as despesas. Como as folhas de despesas são criadas como e quando não posso pré-gerar uma planilha para preencher com fórmulas. Eu tenho uma planilha de resumo que adiciona totais das outras planilhas e atualmente cria uma fórmula manualmente no final do mês. Existe uma maneira de somar automaticamente várias planilhas e adicionar novas planilhas à soma quando elas são criadas?

Isso é possível usando o Excel padrão ou precisarei usar algum VBA?

Eu já sei como adicionar a mesma célula em várias planilhas (veja: Excel - fórmulas que totalizam várias planilhas? )

Este script vba é parte do caminho para o que eu estou procurando fazer, mas não exatamente o que eu quero fazer: Excel - importa dados da célula automaticamente quando uma nova guia é criada

P.S. Eu não sei VBA, mas estou disposto a aprender. Estou acostumado com o C / Python.

    
por Tom Wilkinson 20.02.2015 / 10:39

1 resposta

1

Digamos, por exemplo, que você tenha seu total em execução em Sheet1!A1 . Certo, agora você cria uma macro que pode ser executada, que pegará todos os totais das outras planilhas e as adicionará.

Vamos supor que os totais de cada folha estejam na célula A10 -

Sub updatethesum()
Dim ws As Worksheet
    Dim i As Double
    i = 0
For Each ws In ThisWorkbook.Worksheets

    If ws.Name <> "Sheet1" Then
        i = i + ws.Range("A10")
    End If

Next
Sheets("Sheet1").Range("A1") = i
End Sub

Se você tem medo de alguém colocar uma letra em vez de um número em A10 , você pode restringir a entrada com algo assim -

Sub updatethesum()

Dim ws As Worksheet
    Dim i As Double
    i = 0
    Dim bletter As Boolean

For Each ws In ThisWorkbook.Worksheets

    If ws.Name <> "Sheet1" Then
        bletter = IsNumeric(ws.Range("A10").Value)
            If bletter = True Then
             i = i + ws.Range("A10")
            End If
    End If

Next
Sheets("Sheet1").Range("A1") = i
End Sub
    
por 20.02.2015 / 18:13