Atualização automática do banco de dados do Excel

0

Estou usando o Excel 2007. Tenho um arquivo do Excel que tem a célula A1 mostrando uma data e a célula B1 mostrando um valor na planilha 1. Preciso atualizar automaticamente a data em A1 e o valor B1 em um banco de dados na planilha 2. O banco de dados na planilha 2 é vinculado à célula A1 e B1 na planilha 1 usando Vlookup, escolhendo a data em A1 como o valor de pesquisa. O arquivo excel é usado diariamente e o conteúdo das células A1 e B1 será alterado diariamente. A folha 2 precisará registrar todas as datas e quantidade na célula A1 e B1 por um ano

Meu problema:
1. Como eu construo meu banco de dados para capturar a data anterior e quantidade em A1 e B1 diariamente porque as datas em A1 continuam mudando como é chave em uma base diária.

Por exemplo: -

Na figura 14/3/2015 (célula A1) é $ 3,333 na célula B1. Assim, a base de dados captura a data 14/03/2015 e US $ 3.333 na planilha 2 do banco de dados.

No dia seguinte, 15/3/2015, o conteúdo da célula A1 agora é alterado para 15/3/2015 e o B1 mostra um valor de US $ 5.555

Meu desafio é como manter as duas datas e o valor na planilha 2 no meu banco de dados, pois só posso obter uma data e um valor apenas para o dia atual.

Honestamente, eu não conheço o VBA.

    
por Rjohans 23.03.2015 / 10:35

2 respostas

1

Isso é feito apenas um pouco mais complicado porque você deseja copiar mais de duas células. Normalmente, você pode usar o evento Worksheet_Change para capturar sempre que uma célula é alterada. No entanto, você deseja aguardar até que as duas células tenham sido alteradas. Em vez de impor alguma regra na qual você tenha que alterá-las na ordem correta e apenas observar a última célula, eu escrevi isso para esperar que a célula C1 fosse alterada. Meu pensamento foi que seus usuários podem editar A1 & B1 , em seguida, digite qualquer coisa em C1 e o código será acionado. Você pode usar a Validação de dados para adicionar uma lista suspensa a C1 que tenha apenas uma opção como "Ir". O código abaixo copia os valores de A1 & B1 para a última linha na planilha 2 sempre que o valor de C1 for alterado e, em seguida, limpar esse valor de C1 .

Abra o editor de VBA ( Alt + F11 é um método). Procure a planilha 1 na janela Explorador de Projetos à esquerda (ela já deve estar lá com um menu em árvore mostrando todas as pastas de trabalho abertas e as planilhas dentro delas). Clique duas vezes na folha para abrir sua janela de código. Copie e cole o código abaixo: (Você pode ter que editar a linha Worksheets("Sheet2") se "Folha2" não for o nome real da sua segunda planilha na qual você deseja que os dados sejam copiados.)

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Long
    If Not Intersect(Target, Range("C1")) Is Nothing Then
        With Worksheets("Sheet2")
            r = .Range("A" & .Rows.Count).End(xlUp).Row + 1
            .Range("A" & r).Value = Range("A1").Value
            .Range("B" & r).Value = Range("B1").Value
        End With
        Application.EnableEvents = False
            Range("C1").ClearContents
        Application.EnableEvents = True
    End If
End Sub

(Para os viciados em VBA: tipicamente prefiro usar Cells over Range , mas não é tão instantaneamente compreensível, então eu usei Range .)

    
por 23.03.2015 / 14:26
-1

Se você não sabe e não pode aprender as ferramentas para fazer o trabalho, sua única alternativa é fazê-lo manualmente.

Em seguida, anote os passos que você tinha que fazer manualmente - esse será o seu esboço de como automatizá-lo.

Em seguida, inicie o Google pesquisando como criar uma macro VBA simples que automatize as etapas que você anotou.

    
por 23.03.2015 / 11:13