Ir ao conteúdo

Excel Gravar dados de uma determinada celula para uma coluna em outra planilha.


Ir à solução Resolvido por Visitante,

Posts recomendados

Postado

Preciso de uma ajuda para construir uma macro para copiar dados de uma celula para outra planilha. Tenho uma planilha de denominada "Dados", onde na celula "L75" é o total de uma serie de dados da coluna "L". 

Quero que a macro copie essa celula (L75), para a planilha dennomidada "Historico", a coloque na celula A1... na proxima ve\, devera colocar o dado na A2, de forma a construir um historico dos valores copiados.

 

Quero tambem que esta macro seja executada as 09:15:00 , depois a cada 15 minutos.

 

Construi o codigo abaixo, que funciona no modulo "Sub Gravar", mas se executa o "Sub timer", da mensagem de erro "Não é possivel gravar a macro "c:\nome do arquivo". Talvez ela nao esteja disponiivel nesta pasta de trabalho ou todas as macros estejam desabilitadas".

 

  Alguem poderia me ajudar a corrigir o que esta errado?

 

 

 

 

Private Sub Gravar()

Dim linha As Long
Dim WP2 As Worksheet
Dim WP1 As Worksheet

Set WP1 = Sheets("Historico")
Set WP2 = Sheets("Dados")

      linha = WP2.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row

      WP2.Cells(linha, 1).Value = WP1.Range("L75").Value

      Call timer
      Call timer1
      
End Sub

Private Sub timer()

     Application.OnTime TimeValue("09:15:00"), "Gravar"
            
End Sub

Private Sub timer1()
     Application.OnTime TimeValue("09:15:00") + TimeValue("00:15:00"), "Gravar"
End Sub
 

Postado

 

Como o código Private Sub Gravar() é acionado ?

 

Sugestão, remova o termo Private das três Subs, e se o erro persistir, então disponibilize uma amostra do seu arquivo Excel com os códigos instalados.

Postado

Osvaldo, muito obrigado pela ajuda... Só mais um ajuste... caso eu queira copiar alem da celula L75, copiar tambem a M75, qual linha do codigo teria que alterar?

Tem como inverter para o horario (time) ser colocado a esquerda dos dados copiados? (coluna A (time), coluna B (copia L75) e coluna C(cópia M75)

Postado

Osvaldo,

 

              Muito bom o seu código. Abaixo segue o feedback da execução dele hoje.

 

As 8:45 eu acionei o botão iniciar, sendo que a macro fez cópia duplicada dos registro; As 9:00 a macro executou (automaticamente) novamente copiando os registro de forma duplicada....  partir das 9:15 (horário programado para ser o inicio da execução) as cópias começaram a ser feita de forma triplicada.... Abaixo segue todo histórico da execução da macro.

 

PS - Os registros copiados estão corretos, apenas ocorrendo loop na execução. Não houve intervenção do usuário após o inicio da execução da macro.

 

   Hora         coluna L75     coluna M75

08:45:00       -91.754          -229.644

08:45:00       -91.754          -229.644

09:00:00       -91.754          -230.780

09:00:00       -91.752          -230.780

09:15:00       -54.926          -214.530

09:15:00       -54.926          -214.530

09:15:00       -54.926          -214.530

09:30:00      -117.799        -219.238

09:30:00      -117.799        -219.234

09:30:00      -117.799        -219.234

09:45:01      -198.115        -222.426

09:45:01      -198.336        -222.437

09:45:01      -198.336        -222.437

10:00:01      -219.713        -224.029

10:00:01      -219.701        -224.029

10:00:01      -219.701        -224.029

10:15:01      -254.222        -225.327

10:15:01      -254.395        -225.336

10:15:01      -254.395        -225.336

10:30:01      -355.299        -229.039

10:30:01      -355.812        -229.065

10:30:01      -355.812        -229.065

10:45:01      -444.138        -232.930

10:45:01      -444.146        -232.930

10:45:01      -444.146        -232.930

11:00:01      -448.991        -232.452

11:00:01      -448.985        -232.451

11:00:01      -448.985        -232.451

11:15:01      -403.431        -230.694

11:15:01      -403.427        -230.694

11:15:01      -403.427        -230.694

 

Postado

Veja o arquivo anexo. Estão corrigidas as falhas apontadas.

 

Para efeitos de testes deixei o intervalo de disparo do código em 2 minutos (em lugar dos 15 minutos do código anterior), assim o resultado poderá ser avaliado em tempo menor.

Ainda, altere no código o horário em que a operação deverá será iniciada, de acordo com o horário em que você for realizar os testes.

 

Se o resultado for satisfatório aí altere no código os dois parâmetros citados, conforme a sua necessidade.

Replica Célula - Temporizado V3.zip

Postado

Osvaldo,

 

              Esta "quase" funcionando... Quando clicamos no botão para acionar a macro aparece a mensagem:"Não é possível executar a macro "nome-do_aquivo!PararReiniciar". Talvez ela não esteja disponível nesta pasta de trabalho ou todas as macro estejam desabilitadas.

              Apesar da mensagem acima, a macro entra em funcionamento, de acordo com os parâmetros estabelecidos.

 

             Dito isso, pergunto: Seria possível substituir o Botão de Parar/reiniciar por uma uma ordem fixa de encerramento da macro em um horário específico, ou seja:

              As 9h15:00 ela iniciar a rotina de copia, com cópias a cada x minutos;

              As 17h00:00 ela interrompe o funcionamento da macro.

 

Obrigado pela ajuda.

Postado

Osvaldo,

 

            Atualizando... em relação ao erro de acionamento do botão da macro, eu refiz o link manualmente, e aparentemente esta funcionando.... deve ter sido algum "bug" não explicável (...rs...) , mas que aparentemente voltou a funcionar normalmente com o procedimento de reconstrução.

           Vou deixar correr a execução até as 17h00 para verificar alguma inconsistência.

 

Obrigado

  • Solução
Postado
8 horas atrás, alexsilvamt disse:

             Dito isso, pergunto: Seria possível substituir o Botão de Parar/reiniciar por uma uma ordem fixa de encerramento da macro em um horário específico, ou seja:

              As 9h15:00 ela iniciar a rotina de copia, com cópias a cada x minutos;

              As 17h00:00 ela interrompe o funcionamento da macro.

 

Veja no arquivo anexo. Acrescentei um comando para interromper automaticamente a operação em horário especificado no código. Mantive o botão e o correspondente código pois assim permitirá ao usuário iniciar, parar e reiniciar a operação a qualquer tempo, tendo em vista que o tópico fica aberto a buscas pela Internet e esse recurso poderá servir para outras pessoas. O botão poderá ser excluído da planilha sem prejuízo do funcionamento automático da operação.

 

 

6 horas atrás, alexsilvamt disse:

 ... eu refiz o link manualmente, e aparentemente esta funcionando.... deve ter sido algum "bug" não explicável (...rs...) ...

Esse "bug" até tem uma explicação: provavelmente você copiou o código do arquivo que postei por último e colou no arquivo anterior, só que ... os nomes dos códigos são diferentes, e o botão estava vinculado ao código anterior, por isso deu erro. Mas tudo bem, como o "bug" não consegue se defender das acusações, ele assume mais essa :tw_tounge_wink:

 

Replica Célula - Temporizado V3.zip

Postado

@osvaldomp Foi exatamente o que aconteceu, eu copie seu código e atualizei na planilha que utilizo em razão da mesma ter links DDE.... xinguei bastante a Microsoft achando que era bug do excel (...rs...)

 

atualizei os código e amanha faço o feed final... Por hora, muito obrigado pela atenção.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...