Copiar linha selecionada para outra planilha

Copiar linha selecionada para outra planilha

Existem por ex. 10 linhas em uma planilha. Quando o usuário clica em uma linha ela deve ser apresentada em outra planilha. É possível? Alguma ajuda para fazer isso?

EDITAR: Para esclarecer: Numa folha são apresentadas por exemplo as notas dos exames dos alunos do primeiro ano: João 10 8 10 7 Nick 8 9 8 9 Maria 7 8 8 7

Na 2ª folha estão os dados dos alunos do 2º ano: João 9 9 10 8 Nick 8 8 9 7 Maria 7 6 8 8

Quero dar algum tipo de certificado final para o aluno, portanto as informações resumidas devem ser apresentadas na terceira folha. Não preciso estar no clique. Pode haver uma lista suspensa na terceira folha.

Responder1

Esta seria uma macro rápida para fazer isso:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  With Sheet2.UsedRange
    'note, this won't copy to row 1, leaving headers intact.
    Target.EntireRow.Copy (.Rows(.Rows.Count + 1).EntireRow)
  End With
End Sub

No entanto, usá-lo com alteração de seleção pode ser bastante chato, porque ele será executado toda vez que você selecionar outra célula - então você pode querer pensar em usar algum tipo de backchecking ou outra maneira de executar isso.

Talvez apenas use o código como uma macro personalizada e atribua uma tecla de atalho.

Editar

Quando quiser fazer isso apenas com fórmulas, você terá que configurar cada célula da linha de destino com uma fórmula. Não conheço nenhuma maneira de alterar uma célula diretamente usando uma fórmula, exceto, é claro, a célula com a fórmula.

Minha sugestão então seria usar intervalos nomeados, VLOOKUP ou MATCH.

Um intervalo nomeado pode ficar bem próximo do que você declarou:

Na folha de destino:

A1=14

A2=MYRANGE
B2=MYRANGE
.
.
.
IV2=MYRANGE

MYRANGE é definido como

=INDIRECT("SourceSheet!"&DestSheet!$A$1&":"&DestSheet!$A$1)

Isso forneceria a linha 14 da planilha de destino. Isso também funcionará, se A1 estiver no SourceSheet , apenas edite-o de acordo.

Com a mesma facilidade, você poderia usar dois intervalos nomeados:

MYDESTRANGE=SourceSheet!MYSOURCERANGE

Ao alterar MYSOURCERANGE para outra linha, você alteraria efetivamente a origem de MYDESTRANGE, usando a mesma linha de antes.

informação relacionada