VBA adicionando linhas e excluindo linhas automaticamente ao alterar o ano de início / fim

0

Eu tenho 3 tabelas Eu gostaria de alterar o número de linhas conforme eu atualizo o número de anos. Se eu mudo o ano final ou começo do ano onde a tabela pode flexionar. O problema que encontrei até agora é que, se eu aumentar a tabela, a linha adicionada é depois do ano final e não abaixo (NÃO incluída na tabela real). Portanto, talvez deslocar a mesa para baixo e copiar a fórmula todo o caminho com o resto do ano?

Isso é o que eu tenho até agora:

Private Sub Worksheet_change(ByVal Target As Range)
Dim StartYear, EndYour As Range
Dim UpdateTable As ListObject
Dim UpdateTableInput As ListObject
Dim NrOfRows, OldNrOfRows As Integer

' Set some ranges

Set StartYear = Worksheets("Sheet1").Cells(1, 2)
Set EndYear = Worksheets("Sheet1").Cells(2, 2)

Dim i As Integer
For i = 1 To 3
    Set UpdateTable = Worksheets("Sheet2").ListObjects("Table" & i)


    ' Check if start or end years have changed
    If (Not Intersect(StartYear, Target) Is Nothing) Or (Not Intersect(EndYear, Target) Is Nothing) Then
        ' Store the new and old number of rows
        OldNrOfRows = UpdateTable.ListRows.Count - 1
        NrOfRows = EndYear.Value - StartYear.Value + 1

        ' Resize the table
        UpdateTable.Resize UpdateTable.Range.Resize(1 + NrOfRows)

        'Delete cells below the table if it gets smaller
        If OldNrOfRows > NrOfRows Then
            UpdateTable.Range.Offset(NrOfRows + 1, 0).Resize(OldNrOfRows - NrOfRows + 1).Delete
        End If
    End If
Next i

End Sub

Sou novo no fórum e não tenho certeza de como fornecer dados de amostra. Vamos dizer que as tabelas são tão simples quanto 2 colunas. Uma coluna por anos, outra coluna para calcular alguma coisa.

StartYear = 2011 
EndYear = 2014 

2010 (2011 -1 )   -----  128 (64*2)

2011 (2012 -1 )   -----  64  (32*2)

2012 (2013 -1 )   -----  32  (16*2)

2013 (2014 -1 )   -----  16  (8*2) 

2014              -----  8

Estou procurando o

  1. tabela para shrik / expandir com linha inferior (2014) sendo sempre o ponto inferior e para qualquer linha adicionada a partir do topo
  2. fórmulas a serem copiadas dentro dessas linhas adicionadas

deixe-me saber se isso faz sentido.

    
por Sam 07.11.2014 / 16:18

0 respostas