Copiar de um ficheiro para outro e mudando a coluna automaticamente


#1

Ola Pessoal.
Pretendo criar uma planilha (ficheiro 2) que copie automaticamente a informação que está no ficheiro 1 mas para colunas diferentes.
Por exemplo eu preencho a folha do ficheiro 1 ( semana 1) e pretendo que ao ser preenchida que automaticamente preencha a folha do ficheiro 2 na semana correspondente ( semana 1).
Se no ficheiro 1 eu indicar semana 2 automaticamente copie os dados para a folha 2 e preencha na semana 2 ( na coluna correspondente). Se alguém conseguir ajudar, agradeço.
Obrigado.

29


#2

Isso não é complicado… Mas seria interessante se postasse seu arquivo para que o código seja voltado para sua planilha…


#3

Boa tarde,

No ficheiro 1 você tem uma coluna com a Semana? Exemplo:
Semana 1 Semana 2 Semana 3 Semana 4
teste2 teste3 Teste 1 Teste 3

E que quando fosse preenchido, copiasse para a respectiva semana no ficheiro 2? Consegue mandar um modelo?


#4

Pretendo que quando preencha a semana 1 apareça no ficheiro 2 mas que quando apague os dados da folha 1 mantenha o que foi preenchido atrás. Ou seja, o ficheiro 1 é sempre o mesmo a ser usado. Veja a imagem para melhor entendimento. Obrigado.


#5

Olá, @carloselmano. Tudo bem?

Fiz uma simulação aqui que não é muito simples pra quem não está acostumado com programação. Basicamente escrevi um algoritmo que percorre o Ficheiro 1 e coloca os valores no Ficheiro 2 sem fazer limpeza dos dados anteriores (para manter o histórico). Então as planilhas ficaram conforme imagens de Ficheiro 1 e Ficheiro 2 respectivamente:

No Ficheiro 2 incluí a seguinte Sub (Função no VBA):

 Private Sub Worksheet_Activate()

    Dim Semana  As String
    Dim i       As Integer
    Dim j       As Integer
    Dim Valor   As String
    
    Application.EnableEvents = False
    Application.ScreenUpdating = False

    For i = 1 To ActiveCell.Offset(-1, 0).End(xlToRight).Column

        Sheets("Ficheiro 2").Select
        Semana = ActiveSheet.Cells(1, i).Value
        ActiveSheet.Cells(2, i).Select

        Do While ActiveCell.Value <> ""

            ActiveCell.Offset(1, 0).Select

        Loop

        Sheets("Ficheiro 1").Select

        For j = 2 To ActiveSheet.Range("A2").End(xlDown).Row

            ActiveSheet.Range("A" & j).Select

            If ActiveCell.Value = Semana Then
                
                Valor = ActiveCell.Offset(0, 1).Value
                Sheets("Ficheiro 2").Select
                ActiveCell.Value = Valor
                ActiveCell.Offset(1, 0).Select
                Sheets("Ficheiro 1").Select

            End If

        Next j

    Next i
    
    Sheets("Ficheiro 2").Select
    Application.EnableEvents = True
    Application.ScreenUpdating = True

End Sub

Assim, sempre que você acessar o Ficheiro 2 ele será atualizado com as novas entradas. Mas pra este algoritmo funcionar, sua pasta deve estar idêntica ao meu exemplo, o que imagino que não seja o caso, aí você precisará fazer as adaptações para as suas planilhas.


#6

Olá. Obrigado pela rápida resposta.
Pode enviar o ficheiro, sff?
Obrigado.


#7

Olá, @carloselmano. Não salvei a pasta, apenas escrevi no Excel para facilitar o desenvolvimento e a explicação. Basta você copiar o conteúdo.


#8

Olá. O que pretendo é tipo o que esta no documento em anexo ( folha 1) e copie automaticamente para a folha de calculo…
Ou seja, preencho a semana 1 e tenho um botão que ao clicar ( com uma macro) copie para a semana 1 ( folha de calculo) e limpa a “folha 1”, semana 2 e preencha para a semana 2 na folha de calculo… até fazer as 4 semanas ou 5.
E na folha de calculo automaticamente faça a compilação das semanas todas e somando.

Espero ter conseguido explicar o que pretendoFolha de Campo_FORUM.xlsx (52,0 KB)
… obrigado.


#9

Olá, @carloselmano. Escrevi um algoritmo que vai atualizar as tabelas das semanas sempre que você acessar a aba “Folha_calculo”. Acredito que você precisará fazer adaptações para as parcelas, já que não entendi como funcionam e apenas fiz uma contagem simples de preenchimento.

Folha de Campo_FORUM.xlsm (122,6 KB)


#10

Oá Xavier. Muito obrigado pela atenção e disponibilidade.
Estive a visualizar o ficheiro mas gostava que ( se fosse possível):

  • Em vez de aparecer semana 1 ( tipo) ser com o período ( por exemplo a ultima semana de Outubro e a primeira de Novembro exemplo : 30 de Outubro a 3 de Novembro. Porque nessa semana temos o mes a terminar e um outro a iniciar.
  • Em vez de acessar na aba “Folha_calculo” ter um botão…tipo quando tiver terminado o preenchimento clico nesse botão e automaticamente grava para a folha_calculo. Porque a aba 1 é para ser preenchida pelo trabalhador e não vai ter acesso à folha_calculo.
  • Na folha_calculo - quando deveria fazer a soma das horas e a compilação das operações, maquinaria e dos parques… não está a fazer!
  • Na folha_calculo - não está a gravar as horas para o respectivo quadro.
    Aguardo a sua resposta.

#11

@carloselmano, primeiro você precisa estruturar a planilha para os padrões de utilização que você precisa, depois implementar as features. Dá uma olhada no código que escrevi e use como base para adaptar à sua realidade.