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

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

Estou usando o Excel 2007. Tenho um arquivo Excel que possui 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 em a planilha 2 é um link para as células 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 mudará diariamente. A folha 2 precisará registrar todas as datas e valores nas células A1 e B1 por um ano

Meu problema:
1. Como faço para construir meu banco de dados para capturar a data e o valor anteriores em A1 e B1 diariamente porque as datas em A1 continuam mudando à medida que são digitadas diariamente.

Por exemplo :-

Em 03/14/2015 (célula A1), o valor é de $ 3.333 na célula B1. Portanto, o banco de dados captura a data 14/3/2015 e $ 3.333 na planilha 2 do banco de dados.

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

Meu desafio é como mantenho as datas e o valor na planilha 2 em meu banco de dados, já que só consigo obter uma data e um valor para o dia atual.

Sinceramente não conheço VBA.

Responder1

Isso é apenas um pouco mais complicado porque você deseja copiar mais de duas células. Normalmente, você pode usar o Worksheet_Changeevento para capturar sempre que uma célula é alterada. No entanto, você deseja esperar até que ambas as células sejam alteradas. Em vez de impor alguma regra onde você tem que alterá-las na ordem correta e depois apenas observar a última célula, escrevi isso para esperar que a célula C1mudasse. Minha ideia era que seus usuários pudessem editar A1e B1digitarqualquer coisaentrar C1e o código seria acionado. Você pode usar a validação de dados para adicionar um menu suspenso C1que tenha apenas uma opção como "Ir". O código abaixo copiará os valores de A1& B1para a última linha da planilha 2 sempre que o valor de C1for alterado e, em seguida, limpará esse valor de C1.

Abra o editor VBA ( Alt+ F11é um método). Procure a planilha 1 na janela Project Explorer à 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 planilha para abrir sua janela de código. Copie e cole o código abaixo: (talvez seja necessário editar a linha Worksheets("Sheet2")se "Planilha2" não for o nome real da segunda planilha para a qual 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: normalmente prefiro usar Cellsover Range, mas não é tão compreensível instantaneamente, então optei por Range.)

Responder2

Se você não conhece e não consegue aprender as ferramentas para realizar o trabalho, sua única alternativa é fazê-lo manualmente.

Em seguida, anote as etapas que você teve que executar manualmente - esse será o esboço de como automatizá-lo.

Em seguida, comece a pesquisar no Google como criar uma macro VBA simples que automatizará as etapas que você anotou.

informação relacionada