Microsoft Excel - Como vincular ou copiar células para uma planilha diferente a cada enésima linha

2

Microsoft Excel - Como vincular ou copiar células para uma planilha diferente a cada enésima linha. Eu tenho um problema interessante. É provavelmente simples, mas não consigo descobrir.

Eu tenho uma lista de células (cerca de 10 colunas de largura e mais de mil linhas, em breve a serem expandidas) A1-A10 e para baixo Estes são os meus títulos e principais células de entrada (vamos chamar esta folha de resumo)

Eu preciso dessas células copiadas e, de preferência, vinculadas à planilha adjacente (Folha Detalhada), mas de tal forma que cada célula (ou 10 células cruzadas) seja copiada a cada 20ª linha.

Às vezes, adicionarei e excluirei linhas da Folha de Resumo. Portanto, eu adoraria poder usar o preenchimento automático ou alguns recursos como esse na Folha Detalhada. Depois de atualizar minha Planilha de Resumo e poder atualizar a Planilha Detalhada, preencha automaticamente as fórmulas.

Mais informações detalhadas:
Cada linha na qual essas células são copiadas se torna uma linha de título para cada módulo de 20 linhas. As 19 linhas abaixo dos títulos copiados permanecem vazias e cálculos detalhados são feitos nas 19 linhas mais à direita. Cada seção é um módulo idêntico com muitos cálculos detalhados e os resultados na linha 1 em cada módulo. Atualmente eu só uso a Folha Detalhada e é muito demorado adicionar ou remover módulos e seus cabeçalhos.

Obrigado por qualquer resposta. Martin

    
por Martin 23.01.2010 / 00:01

3 respostas

2

Talvez isso funcione:

Crie uma coluna A, Contador e defina suas células para 0,1,2,3, ..., (número de linhas). Faça uma nova coluna, RowType. Defina RowType como =IF(MOD(A1,20) = 0, "Summary", "Detail") e arraste isso para baixo.

Isso criará uma tabela assim:

 0  Summary
 1  Detail
 2  Detail
 3  Detail
 4  Detail
 5  Detail
 6  Detail
 7  Detail
 8  Detail
 9  Detail
10  Detail
11  Detail
12  Detail
13  Detail
14  Detail
15  Detail
16  Detail
17  Detail
18  Detail
19  Detail
20  Summary
21  Detail
22  Detail
23  Detail
24  Detail

Em seguida, filtre a coluna RowType para Resumo e cole suas células como de costume

    
por 23.01.2010 / 00:46
0

Não sei se entendi sua pergunta, mas quando você mencionou o preenchimento automático, há uma maneira de criar uma lista de preenchimento automático personalizada e talvez isso o ajude.

Em 2003, vá para o menu Ferramentas - e depois para "Opções". Na caixa de diálogo, vá para a guia "Listas personalizadas". Você pode digitar a lista na caixa "List Entries", separada por vírgulas, ou importar a lista de células existentes.

Quando você quiser preencher a lista automaticamente, basta digitar qualquer entrada em uma célula e arrastar a alça de preenchimento. Ele lhe dará a lista que começa com essa entrada.

Se você tem 2007, pode acessar as listas personalizadas clicando no botão Office e, em seguida, clicando no botão "Opções do Excel". Você verá um botão para listas personalizadas.

    
por 23.01.2010 / 00:30
0

Coloque um botão em sua planilha de resumo e coloque esse código por trás, alterando os nomes das planilhas e o nome do botão para o que você deseja usar. Então, toda vez que você quiser refazer as linhas de detalhe, aperte o botão. Nota: Eu escrevi isso para que a folha de resumo seja Sheet2 e a folha de detalhes seja Sheet1:

Private Sub RedoDetailedSheet_Click()

Dim i As Integer, j As Integer

For i = 0 To Worksheets("Sheet2").UsedRange.Rows.Count - 1
    For j = 1 To Worksheets("Sheet2").UsedRange.Columns.Count

        Worksheets("Sheet1").Cells(20 * i + 1, j).Formula = "=Sheet2!" _
            & Worksheets("Sheet2").Cells(i + 1, j).Address

    Next j
Next i

End Sub

Aqui está o código baseado no seu arquivo de amostra para essa situação específica. Você precisará alterar o formato da coluna Modelo para Geral.

Private Sub RedoDetailedSheet_Click()

Dim i As Integer, j As Integer

For i = 0 To Worksheets("Input").UsedRange.Rows.Count - 2
    For j = 1 To Worksheets("Input").UsedRange.Columns.Count

        Worksheets("Output").Cells(20 * i + 29, j + 2).Formula = "=Input!" _
            & Worksheets("Input").Cells(i + 2, j).Address

    Next j
Next i

End Sub
    
por 23.01.2010 / 01:17